簡體   English   中英

JQGrid getGridParam不返回數據項的ID

[英]JQGrid getGridParam not returning ID of data item

我有一個網格使用從外部ajax請求生成的本地數據(通過外部我的意思是不使用內置的jqgrid的ajax)

來自ajax請求的數據作為本地數據傳遞到網格中,並且網格設置為loadonce。

window.grid = $(window.tableName).jqGrid({
            datatype: "local",
            data: DataFromResponse,
            height: "auto",
            autowidth: true,
            hidegrid: false,
            ignoreCase: true,
            loadonce: true,
            pager: window.pagerName,
            rowNum: 10,
            viewrecords: true,
            gridview: true,
            caption: '',
            colNames :[cols],
            colmodel :[]{cols},
            gridComplete: function() {
                CreateButtons();
            });

正如您在此階段看到網格是基本的,但是我們需要在名為“buttons”的列中添加一些按鈕,我們使用CreateButtons方法來執行此操作。

function CreateButtons(){
   var grid = $(window.tableName);
   var data = grid.jqGrid('getGridParam', 'data');
   $.each(data, function(index, item){
      var cl = item._id_;
      alert(cl);
   });    
}

這個函數的警告應該給我網格設置的行的id,但它沒有任何想法

僅當從遠程源( datatype"xml" "json" "xml" )加載的數據和使用選項loadonce: true時,屬性_id_存在於內部data參數中。 如果在本地加載數據(一個使用datatype: "local" ),則_id_不存在。

如果正確填充網格,則data參數(在您的情況下為DataFromResponse )指定的data是包含id屬性的項目數組以及用於填充列數據的其他屬性。 另一個選項是指定key: true某些列為key: true 如果行的id將從列中獲取。

如果你沒有指定和id信息(非常糟糕)並且你需要訪問包含jqGrid生成的id的所有本地數據,你需要獲得兩個jqGrid選項: _indexdata 對象_index包含網格的所有ID作為屬性。 id屬性的值是data數組中的整數索引,它對應於id。 因此,您可以使用for-in循環來枚舉網格的所有ID(您需要枚舉_index屬性)。 有關詳細信息,請參閱答案 答案

您另外寫道,您在gridComplete內部的網格列中創建了按鈕。 這種方法似乎並不好。 最好使用自定義格式化程序,而不是gridview: true選項(請參閱答案 )。 此外,我不建議您完全使用gridComplete 最好使用loadComplete 有關詳細信息,請參閱答案

暫無
暫無

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

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