Отсутствует окно поиска jqGrid "больше чем" и "меньше чем" - PullRequest
4 голосов
/ 05 февраля 2012

Как я могу иметь больше или меньше, чем в окне поиска?

ниже мой поисковый код:

{multipleSearch:true}

Окно поиска показывает только это Searchbox

Есть ли настройки, которые мне нужно установить, чтобы jgGrid распознал дату поля как Дата? похоже, что он читается как текст.

ниже мой colModel для даты

{name:'date', index:'date', width:90, editable:false, align:"center", editrules:{required:true}}

1 Ответ

7 голосов
/ 05 февраля 2012

Поведение, которое вы описали, существует с момента появления нового модуля фильтра в 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 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...