Búsqueda de la barra de herramientas JQGrid: búsqueda de varias palabras para una columna

Uso la búsqueda en la barra de herramientas. ¿Puedes hacer una búsqueda de varias palabras para una columna? El delimitador es un espacio y la búsqueda debe realizarse utilizando el operador Like. Como resultado, la búsqueda debe devolver todas las filas que han cumplido con todas las palabras en la cadena de búsqueda, sin importar el orden en que vayan en un campo de fila. Por ejemplo, hay una columna “Nombre del producto”, quiero encontrar todas las filas que tienen el nombre del producto contiene la palabra “palanca” y contiene la palabra “izquierda”.

Una pregunta interesante!

Creé la demostración que demuestra cómo implementar la búsqueda de palabras múltiples:

enter image description here

El código correspondiente es:

$grid.jqGrid('filterToolbar', { stringResult: true, defaultSearch: "cn", beforeSearch: function () { modifySearchingFilter.call(this, ' '); } }); 

donde modifySearchingFilter I se define en el camino:

 var modifySearchingFilter = function (separator) { var i, l, rules, rule, parts, j, group, str, filters = $.parseJSON(this.p.postData.filters); if (filters && typeof filters.rules !== 'undefined' && filters.rules.length > 0) { rules = filters.rules; for (i = 0; i < rules.length; i++) { rule = rules[i]; if (rule.op === 'cn') { // make modifications only for the 'contains' operation parts = rule.data.split(separator); if (parts.length > 1) { if (typeof filters.groups === 'undefined') { filters.groups = []; } group = { groupOp: 'OR', groups: [], rules: [] }; filters.groups.push(group); for (j = 0, l = parts.length; j < l; j++) { str = parts[j]; if (str) { // skip empty '', which exist in case of two separaters of once group.rules.push({ data: parts[j], op: rule.op, field: rule.field }); } } rules.splice(i, 1); i--; // to skip i++ } } } this.p.postData.filters = JSON.stringify(filters); } }; 

ACTUALIZACIÓN: jqGrid gratuito es compatible con la operación de búsqueda de filtrado personalizado , lo que hace muy fácil la implementación de tales escenarios como el anterior.