kendoDropDownList加载栏未显示

时间:2017-05-05 12:12:42

标签: kendo-ui kendo-grid

我正在使用dropDownList来显示一些值,以便在网格上过滤结果。

我使用'更改'事件来查看网格何时必须更新

$('#view-mode-selector').kendoDropDownList({
    change: onMChange
});

在方法onMChange中我试图用

显示进度条
kendo.ui.progress($("#grid), true);

并且在完成所有操作的方法结束时我有

kendo.ui.progress($("#grid), false);

但数据加载,我没有看到进度条。

如果我删除最后一个语句('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行。

1 个答案:

答案 0 :(得分:0)

你的问题有点误导。 onkeyup="this.value = this.value.toUpperCase();"元素是否难以显示网格控件的加载图标(根据元素的名称)或下拉控件(根据问题的标题)?

如果网格

为了显示我使用的加载图标:

#grid

隐藏:

kendo.ui.progress($("#grid").data("kendoGrid").element, true);

如果下拉

我没有必要强制显示加载下拉列表的图标,但是有一个示例here,注意到注释指定:

  

元素必须具有位置:应用相对样式

此外,还注意到该元素不能包含子元素。