jqGrid clientseitige Suche

Ich möchte die Suche manuell über JavaScript auf mein jqGrid anwenden. Ich habe einen Führer hier versucht, aber ich kann nicht scheinen, dass es funktioniert. Im Grid-Setup habe ich eine Spalte mit dem Namen ‘error_column’, die ich bei der Suche nach der Zeichenkette ‘Test’ suchen möchte.

Hier ist, was ich bisher habe:

var filter = { "field": "error_column", 'oper': 'eq', "data": 'Test' }; $("Grid2").jqGrid('setGridParam', { search: true, postData: { filters: filter} }) $("Grid2").trigger('reloadGrid'); 

Wenn ich auf die Schaltfläche klicke, an die diese gebunden ist, passiert nichts und es verursacht keine Fehler.

EDIT Hier ist der Code zum Initialisieren des Gitters:

 jQuery("#Grid2").jqGrid({ datatype: "local", height: 250, colNames: ['NewSubscriberID', 'Conflicting Subscriber ID', 'Error Field', 'Error Message'], colModel: [ { name: 'new_subscriber_id', index: 'new_subscriber_id', width: 120}, { name: 'conflicting_subscriber_id', index: 'conflicting_subscriber_id', width: 170}, { name: 'error_column', index: 'error_column', width: 90, sorttype: "text", search: true}, { name: 'error_type', index: 'error_type', width: 145} ], loadonce: true }); 

Ich binde die Daten mit einem lokalen Array an das Raster.

Sie sollten die Suche nach einem einzelnen Feld auf eine andere Weise implementieren:

 var grid = jQuery("#Grid2"); var postdata = grid.jqGrid('getGridParam','postData'); jQuery.extend (postdata, {filters:'', searchField: 'error_column', searchOper: 'eq', searchString: 'Test'}); grid.jqGrid('setGridParam', { search: true, postData: postdata }); grid.trigger("reloadGrid",[{page:1}]); 

Sie können Live Beispiel hier sehen .

AKTUALISIERT : Sie verwenden loadonce: true und datatype: "local" zusammen. Der Wert loadonce: true wird beim datatype: "local" ignoriert. Wenn Sie die Daten vom Server erhalten und den datatype: "json" oder den datatype: "xml" , loadonce: true . Wenn Sie möchten, dass das Suchen (Filtern) nicht lokal, sondern auf dem Server erfolgt, sollten Sie den datatype als zusätzliche Option von 'setGridParam' auf 'json' oder 'xml' 'setGridParam' .