jqGrid在网格之间复制

jqGrid在网格之间复制,jqgrid,jqgrid-asp.net,Jqgrid,Jqgrid Asp.net,我有一个页面上有两个jqGrids。一个包含可用选项的列表,另一个包含包含选项的列表。加载页面时,每个网格从服务器获取其初始数据。之后,我希望用户能够在网格之间移动行,直到他们准备好提交最终结果 我的代码是: function CopySelected(fromGrid, toGrid) { var grid = jQuery(fromGrid); var rowKey = grid.getGridParam("selrow"); if(r

我有一个页面上有两个jqGrids。一个包含可用选项的列表,另一个包含包含选项的列表。加载页面时,每个网格从服务器获取其初始数据。之后,我希望用户能够在网格之间移动行,直到他们准备好提交最终结果

我的代码是:

function CopySelected(fromGrid, toGrid)
    {
        var grid = jQuery(fromGrid);
        var rowKey = grid.getGridParam("selrow");
        if(rowKey != null)
        {
            var row = grid.jqGrid('getRowData', rowKey);
            grid.delRowData(rowKey);
            jQuery(toGrid).addRowData(rowKey, row);
        }
    }

这种方法的问题是,最终在目标网格中会出现重复的rowid。有没有办法告诉jqGrid创建一个新ID,或者获取下一个免费ID?

您可以使用目标网格中的任何ID前缀:

jQuery(toGrid).addRowData("bla_"+rowKey, row);

这解决了重复ID的问题,但却导致了一个新的问题。在开始一个新问题之前,我会看看能挖掘出什么。@Donavan Stanley:我想你们在编辑第二个网格时可能会遇到问题。在这种情况下,您可以使用
serializedCellData
(在单元格编辑的情况下)、
在提交之前
serializedEditData
(在表单编辑的情况下)或
serializedRowData
(在内联编辑的情况下)在将id发布到服务器之前修改它。@Donavan Stanley:顺便说一句,我建议引入新的
idprefix
参数,它可以完全解决您描述的问题。这是一个很小的问题,但是功能请求没有按照我建议的形式实现。当前的问题是,一旦用户对网格进行排序,它就会发出一个ajax调用,用原始列表替换网格的内容。试图找到一种在初始加载后断开网格连接的方法。@Donavan Stanley:你是说第二个网格,我建议在ID之前使用前缀?它有哪种数据类型?如果使用保存在服务器上的数据,可以在服务器端设置id前缀。