[JQGRID在使用reloadGrid时仍然坚持发布原始postData值

问题描述 投票:0回答:1

我的初始网格已建立

    $("#dims_list").jqGrid({        
    url: "ajax_get_dims_for_grid.php",
    postData: {'dims_guid': $('#dims_guid').val()},

当我使用新参数刷新网格时,将发送原始值(持续)

      var dims_guid = $("#dims_guid").val(); // New value for the grid 
      $("#dims_list").jqGrid('setGridParam',{"dims_guid":dims_guid}).trigger('reloadGrid');

我已经在Chrome开发人员窗口中进行了监视,可以在var dims_guid中看到新值,但是旧值会发布到从数据库中检索数据的页面。

我刚刚从freeJQgrid移至Guriddo jqGrid

我实际上尝试了以下代码

     var url="ajax_get_dims_for_grid.php?dims_guid="+$("#dims_guid").val();
     $("#dims_list").jqGrid('setGridParam',{"url":url}).trigger('reloadGrid');

并且在Chrome浏览器中,查询字符串已与旧的字符串优先复制

查询字符串参数

dims_guid:100d7c6d-bcba-4b13-8832-f9de7794498c

dims_guid:dbc02dbe-e3d8-4b7d-8389-2678221ea189

_ search:假

nd:1586531572226

行:20

页面:1

sidx:

sord:asc

这是一个已知问题吗?

javascript jqgrid
1个回答
0
投票

如果使用postData将参数发送到服务器,则每次发出请求时,每次将参数发布到服务器时,此参数(postData)都会扩展。按照documentation。该数组直接附加到URL。

您遇到的问题是,触发网格时您没有正确设置新参数。您要做的是:

var dims_guid = $("#dims_guid").val(); // New value for the grid 
    $("#dims_list").jqGrid('setGridParam' {"dims_guid":dims_guid}).trigger('reloadGrid');

这样,您可以在网格上附加新参数,而无需更改现有参数。为了使其正确,需要像这样在postData中进行更改

var dims_guid = $("#dims_guid").val(); // New value for the grid 
  $("#dims_list").jqGrid('setGridParam',{ "postData : "dims_guid":dims_guid} }).trigger('reloadGrid');

希望您能理解其中的区别。

另一种可能的解决方案是不使用postData(从选项中删除postData),而仅使用url来更改参数,就像在第二个发布的代码中一样。像这样:

$("#dims_list").jqGrid({        
url: "ajax_get_dims_for_grid.php?dims_guid="+$("#dims_guid").val(),

然后

 var url="ajax_get_dims_for_grid.php?dims_guid="+$("#dims_guid").val();
 $("#dims_list").jqGrid('setGridParam',{"url":url}).trigger('reloadGrid');
© www.soinside.com 2019 - 2024. All rights reserved.