jquery – 如何在构造jqgrid后设置postData?

前端之家收集整理的这篇文章主要介绍了jquery – 如何在构造jqgrid后设置postData?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我从模型类生成我的jqgrid,我将其传递给视图.我得到了构建和工作jqgrid.但是,在我调用helper创建jqgrid之后,我想在一个视图上设置postData,我使用jqGrid,在该视图中使用脚本,而不必更改创建jqgrid的整个局部视图.

我试过跑

$("#@Model.Id").jqGrid('setGridParam',{ postData: { test: 233} });

$("#@Model.Id").setGridParam({ postData: { test: 233} });

但没有错误或任何结果.如果我在jqgrid参数中设置postData(在部分视图中构造它,它可以工作.

我还检查了网格存在,补充说

console.log($("#@Model.Id").size());

在第一行之前,它显示1.

更新:这个.setGirdParam函数开始为我工作没有明显的原因,所以如果有人可以提供一些可以阻止这种工作的见解,我会接受回答.
谢谢

解决方法

你没有在你的问题中包含jqGrid的定义,我们看不到调用setGridParam的地方.首先,您应该在创建jqGrid之后但在发送请求之前使用setGridParam.如果要更改postData,则下一个jqGrid请求可以使用新参数.所以通常使用
$("#@Model.Id").trigger('reloadGrid',[{page:1}]);

here.

我想最好的选择是使用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 ...
});

详情请见here.通过这种方式,您几乎可以实现任何方案.

顺便说一句,如果您不希望jqGrid向服务器发送任何请求,直到事件发生,您可以在初始化时使用数据类型:’local’.然后,如果你想要填充网格,你可以使用setGridParam将数据类型从’local’更改为’json'(或’xml’)并调用.trigger(‘reloadGrid’,…).

原文链接:https://www.f2er.com/jquery/181326.html

猜你在找的jQuery相关文章