Javascript UI对剑道网格变得无响应
对于以下场景,我一直面临剑道网格的问题 我有一个剑道网格,有18列。用户可以选择多行。行数大多超过10000行 要获取所选行,我使用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
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需要执行各种同步,因此可以;这里不使用分页。