加载时在Kendo Grid中插入多行而无需for循环

时间:2019-02-04 06:46:37

标签: asp.net-mvc kendo-grid

我需要在载入时在剑道网格中显示100个空行,如Image所示,而不使用for循环。

我已经尝试过:-

{'F': 2, 'S': 1, 'Y': 2, 'C': 1, 'L': 7, 'STOP': 1, 'W': 2, 'P': 3, 'H': 0, 'R': 6, 'Q': 8, 'I': 4, 'T': 1, 'N': 2, 'K': 4, 'M': 5, 'V': 3, 'A': 9, 'D': 5, 'G': 2, 'E': 3}

但是使用for循环会消耗大量的加载时间。那么,除了for循环以外,还有什么更好的选择可以在剑道网格中显示多行?

我的网格如下:-

$(document).ready(function () {
        var grid = $("#AlertRowGrid").data("kendoGrid");
        var datasource = grid.dataSource;
        for (i = 0; i < 100; i++) {
            datasource.add({ PhoneNumber: '', Field1: '', Field2: '', Field3: '', Field4: '', Field5: '', Field6: '', Field7: '', Field8: '', Field9: '', Field10: '' });
        }            
    });

您的帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

每次更新网格的数据源时,都会刷新它。我更改了您的代码以首先构建数据源,然后将其分配给网格:

$(document).ready(function () {
    console.log("S: " + new Date());

    var data = [];
    for (var i = 0; i < 100; i++) {
        data.push({ PhoneNumber: '', Field1: '', Field2: '', Field3: '', Field4: '', Field5: '', Field6: '', Field7: '', Field8: '', Field9: '', Field10: '' });
    }
    var dataSource = new kendo.data.DataSource({
        data: data
    });

    var grid = $("#AlertRowGrid").getKendoGrid();
    grid.setDataSource(dataSource);
    grid.dataSource.read();

    console.log("E: " + new Date());
});

根据https://docs.telerik.com/kendo-ui/api/javascript/ui/grid/methods/setdatasource,不需要手动重新加载数据源。但是没有它就行不通。

您的代码在我的计算机上花费了5秒钟。现在不到一秒钟。