我从传递到视图的模型类生成 jqgrid。我构建并运行 jqgrid。但是,我想在一个视图上设置 postData,在该视图中使用 jqGrid,在调用创建 jqgrid 的帮助程序之后,从该视图中的脚本中设置,而不必更改创建 jqgrid 的整个部分视图。
我尝试跑步
$("#@Model.Id").jqGrid('setGridParam', { postData: { test: 233} });
and
$("#@Model.Id").setGridParam({ postData: { test: 233} });
但没有错误或任何结果。如果我在 jqgrid 参数中设置 postData (在构造它的部分视图中,它会起作用。
我还检查了网格是否存在,添加
console.log($("#@Model.Id").size());
第一行之前,显示 1。
更新:这个 .setGirdParam 函数开始为我工作,没有明显的原因,所以如果有人能提供一些可以阻止其工作的见解,我将接受答案。
谢谢
您的问题中没有包含 jqGrid 的定义,我们看不到这个地方哪里的setGridParam
叫做。首先你应该使用setGridParam
afterjqGrid 已创建,但是before请求将被发送。如果您要更改postData
the nextjqGrid请求可以使用新的参数。所以人们通常使用
$("#@Model.Id").trigger('reloadGrid', [{page:1}]);
see here.
我想对你来说最好的选择是使用函数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 ...
});
See here了解详情。这样你就可以实际实施any设想。
顺便说一句,如果您不希望 jqGrid 在事件发生之前向服务器发送任何请求,您可以使用datatype:'local'
在初始化时。然后,如果您希望网格被填充,您可以使用setGridParam
改变datatype
from 'local'
to 'json'
(or 'xml'
)并致电.trigger('reloadGrid',...)
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)