Поведение, которое вы описали, существует с момента появления нового модуля фильтра в jqGrid. Поведение по умолчанию немного сложнее, чтобы описать его в столбце «По умолчанию» таблицы из опций поиска .
Если вы изучите исходный код jqGrid, вы найдете следующие строки: две строки :
numopts : ['eq','ne', 'lt', 'le', 'gt', 'ge', 'nu', 'nn', 'in', 'ni'],
stropts : ['eq', 'ne', 'bw', 'bn', 'ew', 'en', 'cn', 'nc', 'nu', 'nn', 'in', 'ni'],
Таким образом, если вы определили свойство sopt
в поиске 1012 * для некоторого столбца jqGrid, вы увидите соответствующие операции сравнения. Вы можете установить по умолчанию
Если вы определите любое значение sorttype
, отличное от значения по умолчанию 'string'
, числовые параметры будут использоваться в качестве операций сравнения. Только для неопределенных sorttype
, неопределенных searchoptions.sopt
и неопределенных параметров параметров поиска prmSearch
из navGrid будет использоваться описанное вами поведение.
Таким образом, вы можете использовать, например, navGrid
в форме
$('#grid').jqGrid('navGrid', '#pager',
{refreshstate: 'current', add: false, edit: false, del: false}, {}, {}, {},
{sopt: ['eq', 'ne', 'lt', 'le', 'gt', 'ge', 'bw', 'bn', 'ew', 'en', 'cn', 'nc', 'nu', 'nn', 'in', 'ni']}
);
Другая возможность - определить searchoptions.sopt
непосредственно для столбца «дата»:
{name: 'date', index: 'date', width: 90, align: "center", editrules: {required: true},
searchoptions: {sopt: ['eq', 'ne', 'lt', 'le', 'gt', 'ge']}}
Вы можете включить все операции, которые вы хотите выполнить для соответствующего столбца, в зависимости от типа данных внутри.
Я действительно рекомендую вам использовать шаблоны столбцов . В проектах, которые я разработал для клиентов, я определяю в одном файле JavaScript, который я включаю на всех страницах, разные шаблоны для разных типов данных. Например
var initDate = function (elem) {
$(elem).datepicker({
dateFormat: 'dd-M-yy',
autoSize: true,
changeYear: true,
changeMonth: true,
showButtonPanel: true,
showWeek: true
});
},
dateTemplate = {width: 80, align: 'center', sorttype: 'date',
formatter: 'date', formatoptions: { newformat: 'm/d/Y' }, datefmt: 'm/d/Y',
editoptions: {date: true, dataInit: initDate },
searchoptions: { sopt: ['eq', 'ne', 'lt', 'le', 'gt', 'ge'], dataInit: initDate }};
Если вы определили переменную dateTemplate
, вы можете использовать ее как
{name:'date', index:'date', editrules: {required: true}, template: dateTemplate }