如何从一个jqgrid移动行数据

时间:2012-11-18 04:54:31

标签: jquery jqgrid

我正在尝试将行从一个网格移动到另一个网格。我能够将行添加到第二个网格但不能删除第一个网格中的行。

这是我的代码:

var RowList;
RowList = $('#questions_list').getGridParam('selarrrow');
for (var i=0, list=RowList.length; i<list; i++) 
{
var selectedId = RowList[i];

var selectedData = $('#questions_list').jqGrid('getRowData', selectedId );

$('#selectedQuestions_list').jqGrid('addRowData', selectedId , selectedData );

$('#questions_list').jqGrid('delRowData',selectedId );
}

但是我无法正确删除行,当我添加delrowdata时,我无法正确添加。可以在代码中帮助我。谢谢提前

3 个答案:

答案 0 :(得分:0)

在stackoverflow的其中一个主题中有一个更全面的答案可能对你有帮助;

How to delete rows with local data in jqgrid

答案 1 :(得分:0)

您应该删除之后 之前 选项addRowData是表示网格行的相应rowid元素的id属性的值。因此,如果您首先将<tr>相同的 rowid addRowData一起使用,您将获得id重复项,这在一个HTML / XHTML页面上是不允许的。如果您使用selectedIdaddRowData的来电交换线路,则问题应该得到解决。

答案 2 :(得分:0)

正如Oleg所说,用addRowData和delRowData的调用交换行应该解决问题。当我选择2行并尝试移动到其他网格时它没有发生,它是从grid1添加所有行并且只删除一行两个选择。

所以我用以下方式编写了代码:

var questionids = idsOfSelectedRows;//$('#questions_list').getGridParam('selarrrow');
var questionLength = questionids.length;
for (var i=0; i < questionLength; i++) 
{
 var selectedId = questionids[i];
 var selectedData = $('#questions_list').jqGrid('getLocalRow', selectedId);
 $('#selectedQuestions_list').jqGrid('addRowData', selectedId, selectedData);
 $('#selectedQuestions_list').trigger("reloadGrid");
}

for (var i = 0; i < questionLength ; i++) { 
 var selectedId = questionids[i];
 console.log("delete is "+ $('#questions_list').jqGrid('delRowData', selectedId));
 //$('#questions_list').trigger("reloadGrid");
}

要获取idsOfSelectedRows,请参阅demo,您也可以看到link