我的初始网格已建立
$("#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
这是一个已知问题吗?
如果使用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');