jqGrid内联编辑添加新行后不工作

jqGrid内联编辑添加新行后不工作

问题描述:

我目前正在使用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的拥有者,因为我一直在努力地将代码移动到小提琴上,对不起,因为我失去了那个小提琴的原始答案链接......)

我结束了刚刚重新加载整个网格添加新行后。它工作正常,除了新添加的行不会转到编辑模式,因为它不检测用户是否点击它,因为它已创建时已被突出显示。

创建新行后,只需添加此代码:

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

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