jqGrid ricerca sul lato client

Vorrei applicare manualmente la ricerca al mio jqGrid tramite JavaScript. Ho provato una guida qui , ma non riesco a farlo funzionare completamente. Nella configurazione della griglia ho una colonna con il nome ‘error_column’ che vorrei eseguire una ricerca cercando la stringa ‘Test’.

Ecco cosa ho finora:

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

Quando faccio clic sul pulsante a cui è associato, non accade nulla e non provoca errori.

EDIT Ecco il codice per inizializzare la griglia:

 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 }); 

Lego i dati alla griglia usando un array locale.

Dovresti implementare la ricerca di un singolo campo in un altro modo:

 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}]); 

Puoi vedere l’esempio dal vivo qui .

AGGIORNATO : si utilizza loadonce: true e datatype: "local" insieme. Il valore loadonce: true verrà ignorato in caso di datatype: "local" di datatype: "local" . Se si ottengono i dati dal server e si utilizza il datatype: "json" o datatype: "xml" , quindi loadonce: true funzionerà. Se si desidera che la ricerca (filtro) venga eseguita non localmente ma sul server, è necessario ripristinare il datatype di datatype su 'json' o 'xml' come opzione aggiuntiva di 'setGridParam' .