jqGrid 4.2 Пользовательский поиск с полями без сетки - PullRequest
1 голос
/ 10 декабря 2011

Я использую jqGrid 4.2 с filterToolbar, который прекрасно работает.Я хотел бы добавить некоторый тип пользовательского поиска к полям запроса (на стороне сервера), которые не являются частью colModel.

До 4.0 я бы использовал filterGrid в соответствии с этим:

$('#keyword').jqGrid('filterGrid', '#ticket-grid',
    {
       gridModel: false, 
       filterModel: [
            { label: 'Keyword', name: 'keyword', stype: 'text'},
            { label: 'Inclued Closed?',name : 'includeClosed', stype: 'checkbox'}
       ]
     });

Я понимаю, что это больше не поддерживается, и stype: 'checkbox' все равно не работает.

Как мне это сделать с новым поисковым модулем / механизмом?

1 Ответ

2 голосов
/ 10 декабря 2011

Если я вас правильно понял, у вас уже есть на странице, например, над сеткой, некоторые элементы управления (ввод текста, выборки, чеки), которые позволяют пользователю определить дополнительные критерии результатов, которые пользователь хочет видеть в сетке. , В этом случае вы можете использовать postData с методами (функциями), как описано в старый ответ .

Если любой вид обновления сетки: запрос на фильтрацию данных с панели инструментов поиска , изменение страницы или размера страницы, изменение сортировки и т. Д. Всегда будут следовать запросу Ajax к сервер. В случае, если свойства из postData опция jqGrid будет добавлена ​​как другие стандартные параметры (sidx, sord, page, ...). Если одно из свойств postData определено как функция (если метод postData), то будет вызвана функция для построения параметра, который будет отправлен на сервер. Таким образом, текущая информация от ваших пользовательских элементов управления поиском (ввод текста, выбор, чечбоксы) будет отправлена ​​на сервер. Таким образом, вам нужно только использовать параметры на сервере для фильтрации результатов.

Итак, вы должны определить поля самостоятельно. Например, ввод текста с id = "keyword-input" и флажки с id = "includeClosed", а затем использование postData примерно в следующей форме:

$('#keyword').jqGrid(
    // ... other jqGrid options
    postData: {
        keyword: function () { return $('#keyword-input').val(); },
        includeClosed: function () { return $('#includeClosed')is(':checked'); },
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...