Если я вас правильно понял, у вас уже есть на странице, например, над сеткой, некоторые элементы управления (ввод текста, выборки, чеки), которые позволяют пользователю определить дополнительные критерии результатов, которые пользователь хочет видеть в сетке. , В этом случае вы можете использовать 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'); },
}
});