jqGrid: как вызвать "reloadGrid", чтобы обновить сетку из внешних фильтров
У меня есть фильтры вне jqGrid, которые должны вызвать перезагрузку сетки. Эта запись дала мне некоторое представление о том, как ее реализовать, используя опцию postData: как фильтровать данные jqGrid, не используя встроенное поле поиска/фильтра К сожалению, фрагменты кода являются фрагментами, и я не могу понять, какой должна быть общая последовательность вызовов. Вот краткий обзор моего нынешнего подхода:
<script>
$(document).ready(function() {
$("#submit").click(function(e) {
e.preventDefault();
myGrid.trigger('reloadGrid');
});
});
var url="${servicesUrl}/projects";
var myGrid = $("#projectList").jqGrid({
url: url,
datatype: 'json',
mtype: 'GET',
// ...
});
</script>
Как я должен структурировать код так, что каждый щелчок кнопки "Отправить" вызовет перезагрузку сетки? Как только я это выясню, я уверен, что смогу добавить часть posData, моя проблема в основном с общей последовательностью вызовов. Я не уверен, какие вызовы должны быть внутри функции ready() и как правильно вызвать "reloadGrid". Любая помощь очень ценится.
1 ответов
это то, что сработало для меня: я установил обратный вызов на beforeRequest
событие, которое обновляет postData
свойство перед каждым запросом.
обратите внимание, что вы хотите, чтобы весь код инициализации jqGrid внутри $(document).ready(function(){});
функция, в противном случае ваш элемент таблицы может быть еще не в DOM
var url="${servicesUrl}/projects";
$(document).ready(function() {
var $table = $("#projectList");
$table.jqGrid({
url: url,
datatype: 'json',
mtype: 'GET',
beforeRequest: function() {
var postData = $table.getGridParam('postData');
//add parameters to postData here
}
// ...
});
$("#submit").click(function(e) {
e.preventDefault();
$table.trigger('reloadGrid');
});
});