2017-09-26 237 views
0

我目前正在使用free-jqGrid版本4.14.1(使用cdn超鏈接)。我想讓用戶用他們的輸入值添加一個新行,如果他們想通過點擊該行進行任何更改,請編輯該行。爲了添加新行,我創建了一個添加按鈕(不使用jqGrid分頁器)。jqGrid內聯編輯添加新行後不工作

我現在面臨兩個問題:

1)我refered this demo內聯編輯工作。根據這一演示代碼,我需要用線

grid.jqGrid('restoreRow', lastSelection); 

然而,這條線,每次我加入新行,上一行被刪除,並只顯示新添加的行。請檢查this fiddle

2)由於1),我評論說,行(我不認爲我應該這樣做的正常運作),並試圖運行。先前添加的行仍然加入新行之後,但顯示的所有行是顯示文本這樣(fiddle)

enter image description here 我想什麼都僅是用戶點擊該行修改後,它變成像文本框guriddo演示。

我還沒有找到任何與此問題相關的帖子。有沒有人請幫助我?

============================================

地址:

我從一些基本表值開始只是爲了驗證。基本數據行按照我想要的方式工作(單擊要修改的行),但新行不是。這似乎是沒有選擇的,而不是新的行集中,當我點擊,擊中後不退出編輯模式回車鍵..

enter image description here

============== ==============================

================ ============================

的下面是網格的僅供參考的代碼:

$(document).ready(function() { 

     Load_Bin(); 

     $('#Bin-QtyBin').focus(); 
     $('#btnEnter-Bin').click(function() { 

       var valNumBin = $('#Bin-numBin').val(); 
       //if bins are dropbox: select enabled one 

       var valQtyBin = $('#Bin-QtyBin').val(); 


       var paramRow = { 
        rowId: "new_row", 
        initdata: { 
         numBin: valNumBin, 
         QtyPutAway: valQtyBin 
        }, 
        position: "first" //"last" 
       } 

       $("#tbBin").jqGrid('addRow', paramRow); 
       $('#Bin-numBin').val(''); 
       $('#Bin-QtyBin').val(''); 

     }); 
}); 
    var lastSelection; 

    function Load_Bin() { 
     var tbBinArea = $('#tbBin'); 
     tbBinArea.jqGrid({ 
      datatype: "local", 
      colModel: [ 
       { label: 'Bin', name: 'numBin', sorttype: 'text', searchoptions: { clearSearch: true }, width: 310, editable: true }, 
       { label: 'Put Away Qty.', name: 'QtyPutAway', sorttype: 'number', searchoptions: { clearSearch: true }, width: 310, editable: true }], 
      rowNum: 10, 
      rowList: [10, 15, 30, "10000:All"], 
      prmNames: { 
       page: 'defaultPageNumber', 
       rows: 'rowsPerPage' 
      }, 
      //forceClientSorting: true, 
      rownumbers: true, 
      //autowidth: true, 
      viewrecords: true, 
      loadonce: true, 
      multiselect: false, 
      multiPageSelection: false, 
      iconSet: "fontAwesome", 
      pager: true, 
      height: 250, 
      onSelectRow: editRow, 
      searching: { 
       searchOperators: true, 
       defaultSearch: 'cn', 
       closeOnEscape: true, 
       searchOnEnter: false, 
       multipleSearch: true 
      } 
     }); 

    } 


    function editRow(id) { 

     if (id && id !== lastSelection) { 
      var grid = $("#tbBin"); 
      grid.jqGrid('restoreRow', lastSelection); 
      grid.jqGrid('editRow', id, { keys: true }); 
      lastSelection = id; 
     } 
    }; 

(第。秒。感謝this fiddle的擁有者,因爲我一直在努力地將代碼移動到小提琴上,對不起,因爲我失去了那個小提琴的原始答案鏈接......)

回答

0

我結束了剛剛重新加載整個網格添加新行後。它工作正常,除了新添加的行不會轉到編輯模式,因爲它不檢測用戶是否點擊它,因爲它已創建時已被突出顯示。

創建新行後,只需添加此代碼:

  var reloaddata = $('#tbBin').jqGrid("getGridParam", "data"); 

      $('#tbBin') 
       .jqGrid('setGridParam', 
       { 
        datatype: 'local', 
        data: reloaddata 
       }) 
       .trigger("reloadGrid");