【问题标题】:KendoGrid virtualization add new rowKendoGrid 虚拟化添加新行
【发布时间】:2025-12-15 10:45:01
【问题描述】:

我正在试用 KendoUI 试用版。我有一个可滚动的虚拟网格:真。 我想用我的代码添加一个新行。

this.kendoGrid.data('kendoGrid').dataSource.insert({Id: 1, Title: 'test'});

添加了新行,但是当我向下滚动时出现错误“超出最大调用堆栈大小”。

这是要尝试的代码:

http://dojo.telerik.com/UFuwi

我的问题:

这是一个错误还是我只是以不正确的方式添加了这一行? 如果是这样,我在文档中的任何地方都找不到添加、删除和更新绑定到本地数据的网格的正确方法。

【问题讨论】:

    标签: javascript dojo telerik kendo-grid


    【解决方案1】:

    我刚刚查看了文档,您错过的是定义要插入的新元素的位置。

     var pos = test.data('kendoGrid').dataSource.total() - 1;
     test.data('kendoGrid').dataSource.insert(pos, {
       Id: 3, FirstName: 'test2'
     });
    

    希望对你有帮助!

    【讨论】:

    • insert 方法可以将 position 作为参数,但是 add 方法不需要这个。但是这两种方法在控制台中都给出了相同的“超出最大调用堆栈大小”错误。所以这并不能解决问题。
    • 对不起我的错!!我不明白你的问题。您遇到的是来自剑道网格的错误,因为虚拟滚动使用范围而不是页面,因此当您添加或删除时,itedm 会插入范围中,当您再次滚动时将重新计算。误算范围问题。