【发布时间】:2017-05-05 12:12:42
【问题描述】:
我正在使用 dropDownList 来显示一些值,以便过滤网格上的结果。
我已使用“更改”事件来查看何时必须更新网格
$('#view-mode-selector').kendoDropDownList({
change: onMChange
});
在 onMChange 方法中,我试图显示进度条
kendo.ui.progress($("#grid), true);
在方法结束时,我已经完成了
kendo.ui.progress($("#grid), false);
但是数据加载并且我没有看到进度条。
如果我删除最后一条语句(“假”语句),我可以看到进度条,但它永远不会消失。
如果我调试,它会在数据准备好时出现和消失。
这不是数据加载太快的问题,有时数据需要5秒才能准备好。 数据已经在浏览器中,我只是显示或隐藏列。
剑道版v2016.2.714
谢谢
编辑
在 onMChange 上我有一些 ifs,我用我想要显示的列的名称填充一个数组 (columnsToShow)(其他所有内容都将被隐藏),然后我使用以下代码调用一个函数:
showHideColumn: function(columnsToShow) {
var grid = $(this.gridId).data("kendoGrid");
var show = false;
for (var i = 0; i < grid.columns.length; i++) {
show = false;
if (columnsToShow.length > 0) {
for (var j = 0; j < columnsToShow.length; j++) {
if (columnsToShow[j] == grid.columns[i].field) {
grid.showColumn(i);
columnsToShow.splice(j, 1);
show = true;
break;
}
}
}
if (!show) {
grid.hideColumn(i);
}
}
}
该代码似乎在隐藏/显示列方面效率很低,当我想显示所有列(隐藏一些列之后)时,所有活动都会停止几秒钟,我有大约 30 列和 30 行。
【问题讨论】:
-
你是否使用 dataSource.read() 函数从后端检索数据?
标签: kendo-ui kendo-grid