Gor*_*vic 7 jquery jqgrid jqgrid-asp.net
我从模型类生成我的jqgrid,我将其传递给视图.我得到了构建和工作jqgrid.但是,在我调用helper创建jqgrid之后,我想在一个视图上设置postData,在那里我使用jqGrid,在该视图中使用脚本,而不必更改创建jqgrid的整个局部视图.
我试过跑步
$("#@Model.Id").jqGrid('setGridParam', { postData: { test: 233} });
Run Code Online (Sandbox Code Playgroud)
和
$("#@Model.Id").setGridParam({ postData: { test: 233} });
Run Code Online (Sandbox Code Playgroud)
但没有错误或任何结果.如果我在jqgrid参数中设置postData(在部分视图中构造它,它可以工作.
我还检查了网格存在,补充说
console.log($("#@Model.Id").size());
Run Code Online (Sandbox Code Playgroud)
在第一行之前,它显示1.
更新:这个.setGirdParam函数开始为我工作没有明显的原因,所以如果有人可以提供一些可以阻止这种工作的见解,我会接受回答.谢谢
Ole*_*leg 11
你不包括在你的问题中的jqGrid的定义,我们不能看到的地方在setGridParam被调用.首先,您应该setGridParam 在创建jqGrid 之后但在发送请求之前使用.如果要更改postData 下一个 jqGrid请求,可以使用新参数.所以通常使用
$("#@Model.Id").trigger('reloadGrid', [{page:1}]);
Run Code Online (Sandbox Code Playgroud)
看到这里.
我想最适合你的选择是使用函数的函数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 ...
});
Run Code Online (Sandbox Code Playgroud)
详情请见此处.通过这种方式,您几乎可以实现任何方案.
顺便说一句,如果您不希望jqGrid向服务器发送任何请求,直到事件发生,您可以datatype:'local'在初始化时使用.然后,如果您希望填充网格,可以使用setGridParam将datatypefrom 更改'local'为'json'(或'xml')并调用.trigger('reloadGrid',...).
| 归档时间: |
|
| 查看次数: |
37422 次 |
| 最近记录: |