2011-05-31 33 views
7

我从模型类生成我的jqgrid,我将其传入视图。我得到构建和工作jqgrid。不过,在我调用helper创建jqgrid之后,我想在该视图的脚本中使用jqGrid的一个视图上设置postData,而不必更改创建jqgrid的整个局部视图。如何在jqgrid中设置postData后它已经构建?

我试图运行

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

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

,但没有错误或任何结果。如果我在将其构造的jqGrid参数(在局部视图设置POSTDATA,它的工作原理。

我还检查该网格存在,则第一行之前加入

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

,它显示了1.

UPDATE:此.setGirdParam功能开始为我工作没有明显的原因,所以我会接受的答案,如果有人可以给一些见解有什么可以阻止这样做 感谢

回答

11

你没有包括的定义。 jqGri d在你的问题中,我们看不到的地方其中setGridParam被调用。首先你应该用setGridParam之后的这个jqGrid创建好,但是之前的这个请求会被发送。如果您将更改postData,则下一个 jqGrid请求可以使用新参数。因此,人们通常使用

$("#@Model.Id").trigger('reloadGrid', [{page:1}]); 

看到here

我想这对你最好的选择将是postData作为函数的功能test财产的使用:

$("#@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发送任何请求到服务器,直到事件发生,你可以在初始化时使用datatype:'local'。然后,如果您希望网格应该填充,则可以使用setGridParamdatatype'local'更改为'json'(或'xml'),并致电.trigger('reloadGrid',...)

+0

感谢测试方法:()函数的一部分,这将是有益的,否则,我已经按照你写的序中已经实现了一切。它现在有效,但它不是第一次,我不知道我改变了什么:) – 2011-05-31 10:07:08

+0

@obrad:你没有发布你当前使用的代码。如果某些东西在第一时间不起作用,那么您应该首先检查哪些代码确切起作用。我认为你可能会遇到这样的问题,并在我的回答中包含了最初使用'local'的'datatype'部分,这将阻止首次加载网格。在'test:function()'里面你需要使用的值将被知道后,你可以改变''datatype'到''json''并用'.trigger('reloadGrid',...) '。 – Oleg 2011-05-31 10:42:17

+0

我没有发布它,因为它是生成的,但假设我应该发布生成的代码。但是,它现在起作用了。感谢您的帮助。 – 2011-05-31 11:34:35

1
$("#grid id").setGridParam({ postData: {data:dataval} }); 
$("#grid id").trigger('reloadGrid', [{page:1,data:dataval}]);ntn 
1

下面是我用

postData: { 'testKey': function() { return 'testvals'; } }, 
+0

包装一个全局变量从一个像这样完美的函数中返回,以便触发器reloadGrid获取var的当前值,而不是它在网格第一次创建时的值。韩国社交协会。因此,如果我有var测试,那么postdata会是这样的:postData:{'testKey':function(){return testvals; }}, – 2015-07-30 02:50:04

相关问题