Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript UI对剑道网格变得无响应_Javascript_Jquery_Kendo Ui_Kendo Grid - Fatal编程技术网

Javascript UI对剑道网格变得无响应

Javascript UI对剑道网格变得无响应,javascript,jquery,kendo-ui,kendo-grid,Javascript,Jquery,Kendo Ui,Kendo Grid,对于以下场景,我一直面临剑道网格的问题 我有一个剑道网格,有18列。用户可以选择多行。行数大多超过10000行 要获取所选行,我使用grid.select()。要从行中提取内容,我使用grid.dataItem(行) 下面是代码片段 var listofselectedrows = grid.select(); listofselectedrows.each(function (index, row) { var curre

对于以下场景,我一直面临剑道网格的问题

我有一个剑道网格,有18列。用户可以选择多行。行数大多超过10000行

要获取所选行,我使用
grid.select()
。要从行中提取内容,我使用
grid.dataItem(行)

下面是代码片段

            var listofselectedrows = grid.select();
            listofselectedrows.each(function (index, row) {
            var currentDataRow = grid.dataItem(row);
           });
只要选定的行数更多。用户界面正在变得无响应。 我调试了代码<代码>网格。dataItem(行)需要大量执行,这使得网页没有响应

请帮我解决这个问题


问候

绩效调整

当绑定到大型数据集或使用大型页面时,减少内存中的活动DOM对象对于性能非常重要。Kendo Grid提供了内置的UI虚拟化,用于与大型数据集的高度优化绑定。通过简单的配置实现UI虚拟化

$(document).ready(function(){
      $("#grid").kendoGrid({
         scrollable: {
             virtual: true
         }
      });
  });
使用分页:

$("#grid").kendoGrid({
    dataSource: {
        type: "odata",
        transport: {
            read: "http://demos.kendoui.com/service/Northwind.svc/Orders"
        },       
        pageSize: 10,
        serverPaging: true        
    },
    height: 250,    
    pageable: true,
    selectable: "row multiple",
    columns: [
        "OrderID",
        "Freight",        
        "ShipName",                            
        "ShipCity"        
    ],   
});

如果我查看它们的源代码,
dataItem
函数使用regex
/k-grouping-row | k-detail-row | k-group-footer/
循环遍历所有行元素以获取行索引。我相信使用数据源
getByUid
将比使用
dataItem
函数更快

将代码更改为如下所示

$.each(listofselectedrows, function (index, row) {
    var uid = $(row).data("uid");
    var currentData = grid.dataSource.getByUid(uid);
});

请发布您的网格代码。您所说的“行数大多超过10000行”是什么意思?您想在一页上显示10000行吗?我通常使用分页和服务器/客户端过滤,例如每页显示20行,这意味着来自服务器的数据更少、更快、更易于维护。您好,我尝试了您的解决方案。但是对于大量的数据行,它似乎不起作用。UI stll在“grid.dataItem(行);”处变为无响应只是一个建议。尝试禁用布局,同时加载数据nad一旦完成,启用itIn需要执行各种同步,因此可以;这里不使用分页。