Kendo Grid dataItem选择在IE中不起作用

时间:2016-10-25 22:13:44

标签: javascript internet-explorer kendo-ui telerik kendo-grid

我在页面中有两个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

1 个答案:

答案 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();
});

如果有任何疑虑,请告诉我。