Estoy usando el plugin jqGrid más excelente, y he encontrado mucha ayuda en este sitio buscando, pero he encontrado un problema que no puedo resolver o encontrar una solución. Esta será mi primera publicación aquí.jqGrid búsqueda avanzada 'beforeSearch' opción?
Estoy usando una filterToolbar para hacer algunas búsquedas en mi grilla. Debido a la naturaleza del back-end con el que necesito interactuar, no puedo utilizar los filtros que proporciona jqGrid, y en su lugar tengo que interceptar la búsqueda y modificar los datos posteriores antes de enviarlos. Hago esto con la filterToolbar opción "beforeSearch" de esta manera:
$("#SC_grid").jqGrid('filterToolbar', {stringResult: true, searchOnEnter: true, defaultSearch : "cn", beforeSearch: function() {
var postData = $("#SC_grid").jqGrid('getGridParam','postData');
var newPostData = '1=1';
var searchData = jQuery.parseJSON(postData.filters);
for (var iRule=0; iRule<searchData.rules.length; iRule++) {
newPostData = newPostData + " AND " + searchData.rules[iRule].field + " LIKE '%" + searchData.rules[iRule].data + "%' ";
}
$("#SC_grid").jqGrid('setGridParam',{postData: { filter: newPostData, filters: ''} });
return false;
}});
Esto funciona muy bien para mí para construir una parte de mi selecto antes de su presentación. También me gustaría utilizar la búsqueda avanzada de la misma manera, pero no puedo encontrar la manera de interceptar el POST antes de enviarlo. No parece haber una opción beforeSearch() disponible, y las opciones afterShowSearch u onClose no tienen los tiempos correctos. ¿Alguna sugerencia sobre cómo proceder?
Marcos
Bienvenido en la stackoverflow con muy buena primera pregunta. +1 de mí para la pregunta. En poco tiempo intentaré describir una posible manera de resolver su problema. Hasta más tarde ... – Oleg