2017-09-27 164 views
0

我目前正在研究一個涉及從jqgrid的特定列中獲取值的項目。我被告知你應該使用'getCell',但不是給我一個值,它總是返回false。誰能幫我解決這個問題嗎?我的代碼來呈現我的jqGrid低於:jqgrid:getCell總是返回false

RenderGrid: function() { 
      var $deft = $("#MyGrid"); 
      $("#MyGrid").jqGrid({ 
       datatype: "local", 
       editurl: "<%=Session("BaseUri")%>" + '/path/to/irrelevant/helper/page', 
       colNames: ['Actions', 'ButtonId', 'DefectCode', 'Name', ], 
       colModel: [ 
        { name: 'act', index: 'act', width: 100, sortable: false }, 
        { name: 'ButtonId', index: 'ButtonId', editable: false, width:50 }, 
        { name: 'DefectCode', index: 'DefectCode', editable: true, width: 50 }, 
        { name: 'Name', index: 'Name', sortable: false, width: 200, editable: true } 



       ], 
       pager: '#pMyGrid', 
       caption: "McGriddles", 
       multiselect: false, 
       loadonce: false, 
       rowNum: 10, 
       viewrecords: true, 
       sortorder: "desc", 
       width: new Number(300), 
       gridview: true, 
       height: "100%", 
       data: ButtonLibrary, 

       ondblClickRow: function (id) { 
        if (id && id !== lastSel) { 
         jQuery("#MyGrid").restoreRow(lastSel); 
         lastSel = id; 
        } 
        jQuery("#MyGrid").editRow(id, true); 

       }, 
       gridComplete: function() { 

        var ids = jQuery("#MyGrid").jqGrid('getDataIDs'); 
        for (var i = 0; i < ids.length; i++) { 
         var cl = ids[i]; 
         be = "<input style='height:22px;width:20px;' type='button' value='E' onclick=\"jQuery('#MyGrid').editRow('" + cl + "');\" />"; 
         se = "<input style='height:22px;width:20px;' type='button' value='S' onclick=\"jQuery('#MyGrid').saveRow('" + cl + "');\" />"; 
         var ButtonId = $('#MyGrid').jqGrid('getCell', ids[i], 'ButtonId'); 


//------------->   console.log(ButtonId); //always returns false 
          GBDelete = "<input style='height:22px;width:20px;' type='button' value='X' onclick=\"DeleteRowData('" + cl + "');\" />"; 
         jQuery("#MyGrid").jqGrid('setRowData', ids[i], { act: be + se + GBDelete }); 
        } 
       } 

      }); 


     }, 


     }; 

回答

0

的getCell在兩種情況下返回false: 1.如果不能在colModel找到列名或 2行ID無法找到

爲此目的,從響應中獲取列或數據是一個好主意,該響應充當id。

在你的情況下使用本地數據時,爲了正確工作,在colModel數組中使用set key:true是一個好主意。

而且我的建議是有一列將作爲ID(是確保它具有獨特的價值),這應設置爲關鍵:真正在colModel

編輯:如果你有這樣的困難,請發佈一些數據,以瞭解發生了什麼。

還指定使用哪個版本的jqGrid