Вы не включили определение jqGrid в свой вопрос, и мы не можем увидеть место , где называется setGridParam
. Прежде всего, вы должны использовать setGridParam
после , когда jqGrid создан, но за до запрос будет отправлен. Если вы измените postData
, следующий запрос jqGrid может использовать новый параметр. Поэтому обычно используется
$("#@Model.Id").trigger('reloadGrid', [{page:1}]);
см. здесь .
Я полагаю, что лучшим вариантом для вас будет использование функции test
свойства postData
в качестве функции:
$("#@Model.Id").jqGrid({
// ... other jqGrid parameters ...
postData: {
test: function() {
// the code can by dynamic, read contain of some elements
// on the page use "if"s and so on and return the value which
// should be posted to the server
return 233;
}
}
// other jqGrid parameters ...
});
Подробнее см. здесь . Таким образом, вы можете реализовать практически любой сценарий.
Кстати, если вы не хотите, чтобы jqGrid отправлял какой-либо запрос на сервер до наступления события, вы можете использовать datatype:'local'
во время инициализации. Затем, если вы хотите, чтобы сетка была заполнена, вы можете использовать setGridParam
, чтобы изменить datatype
с 'local'
на 'json'
(или 'xml'
) и вызвать .trigger('reloadGrid',...)
.