代码之家  ›  专栏  ›  技术社区  ›  Sam

jqgrid本地数据操作;删除和添加新行时的行ID问题

  •  1
  • Sam  · 技术社区  · 15 年前

    我使用jqgrid作为客户端网格输入,允许用户在一次发布所有数据之前输入多个记录。

    我有一个问题,如果用户添加了一些记录(比如3),那么记录的ID将是1,2,3。如果用户删除了记录2,您只剩下1和3作为记录的ID。

    当用户现在添加新记录时,jqgrid再次分配该记录ID 3,因为它似乎只是计算总记录数,并为新记录增加一个。这会导致在选择行时出现问题,因为现在行ID是1、3和3。

    是否有人知道如何访问记录的行ID,因为我可能会使用AfterSubmit事件并重新分配行ID从1增加到1。(因此,删除行ID 2后,这会将另一行ID设置为1和2)

    还有其他解决这个问题的建议吗?

    谢谢

    编辑 我用下面的“删除导航网格”按钮代码解决了这个问题

      }).navGrid('#pager', {add:true, del:true, refresh:false, search:false},
        {
        ...
        }, ##edit parameters
        {
        ...
        }, ##add parameters
        {reloadAfterSubmit:false,
        clearAfterAdd:false,
        afterComplete:
            function () {
                ## clear and readd the row data so the row ids are sequential
                var savedData= $("#inputgrid").jqGrid('getRowData');
                $("#inputgrid").jqGrid('clearGridData');
                $("#inputgrid").jqGrid('addRowData', 'rn', savedData);
    
            }
        }  ##delete parameters
    );
    

    基本上只需保存网格数据,然后重新添加它,这样rowids就可以再次连续了。

    由于某种原因,它会使左侧的行数从2开始,而不是从1开始。 编辑这是通过使用最新的jqgrid代码在Github(2010年4月27日)解决的。但我发现jquery.fmatter.js的版本在您试图编辑行时导致空单元格显示“”,所以我不得不将该文件还原回jqgrid 3.6.4中的文件。

    1 回复  |  直到 9 年前
        1
  •  0
  •   Sam    14 年前

    如问题编辑部分所示解决

    推荐文章