簡體   English   中英

JQGRID 在使用 reloadGrid 時堅持發布原始 postData 值

[英]JQGRID persists in posting the original postData value when using reloadGrid

我的初始網格是構建

    $("#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 開發人員 window 中對此進行了監控,並且可以在 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

_搜索:假

編號:1586531572226

行數:20

頁數:1

西克斯:

排序:升序

這是一個已知的問題?

如果使用 postData 將參數發送到服務器,則此參數 (postData) 會在每次發出請求時擴展發送到服務器的參數。 根據文檔 該數組直接附加到 url。

您遇到的問題是您在觸發網格時沒有正確設置新參數。 你要做的是:

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

這樣你 append 網格的新參數並且沒有改變現有的參數。 為了使其正確,需要像這樣在 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');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM