我在页面中有两个kendo网格,我试图通过按钮点击将一些项目从一个网格传输到另一个网格。我的代码在Chrome中完美运行,但在IE中却没有。
$('#btn_move_1_2').on('click', function(){
var grid1 = $('#grid1').data('kendoGrid');
var grid2 = $('#grid2').data('kendoGrid');
grid1.select().each(function(key , value){
var currItem = grid1.dataItem(value);
grid1.dataSource.remove(currItem);
//on second iteration gets error- Unable to get property 'uid' of undefined or null reference
grid2.dataSource.add(currItem);
});
grid1.select().each(function(){ grid1.removeRow($(this)); });
grid2.refresh();
});
单一选择将正常工作。在多次选择中,它在第二次迭代中出现错误“无法获取未定义或空引用的属性'uid'”
我创建了一个示例代码段来显示错误http://dojo.telerik.com/@jomet/oVICI
答案 0 :(得分:1)
请尝试使用以下代码段。
,而不是传递完整的TR声明,我只传递行的唯一ID以获取模态/项目详细信息。
$('#btn_move_1_2').on('click', function () {
var grid1 = $('#grid1').data('kendoGrid');
var grid2 = $('#grid2').data('kendoGrid');
var rowSelected = grid1.select();
grid1.select().each(function (key, value) {
// I have updated below code line
var currItem = grid1.dataSource.getByUid($(value).data('uid'));
grid1.dataSource.remove(currItem);
grid2.dataSource.add(currItem);
});
grid1.select().each(function () { grid1.removeRow($(this)); });
grid2.refresh();
});
如果有任何疑虑,请告诉我。