禁用动画以过滤KendoGrid中的列

时间:2014-01-29 05:15:51

标签: javascript jquery asp.net-mvc kendo-ui kendo-grid

因为我正在使用KendoUI来开发我的应用程序。我在我的应用程序中使用了多个网格。我的问题是我想禁用过滤器选项的动画,当我们点击每个列进行过滤时菜单是幻灯片向我们提供各种过滤选项。 我想在我点击该列进行过滤时禁用动画,该选项不得向下滑动。我在这里添加了一个图片。enter image description here

2 个答案:

答案 0 :(得分:1)

我认为没有“官方”配置选项。 您可以为所有弹出窗口禁用它:

kendo.ui.Popup.fn.options.animation.open.duration = 0;
kendo.ui.Popup.fn.options.animation.close.duration = 0;

demo

请注意,这也会影响其他小部件(例如,过滤器菜单中的下拉菜单),因此如果需要,可能需要为这些小部件显式设置动画配置。 一种替代方法是为所有过滤器菜单设置动画(每列有一个),例如:

$(".k-grid-header").find("th").each(function () {
    var menu = $(this).data("kendoFilterMenu");
    var init = menu._init;
    menu._init = function () {
        init.apply(this, arguments);
        this.popup.options.animation.open.duration = 0;
        this.popup.options.animation.close.duration = 0;
    };
});

demo

答案 1 :(得分:0)

上面的回答对我很有用,但是对于我们如何使用kendo网格,网格的列菜单提出了另一个子菜单(如http://demos.telerik.com/kendo-ui/grid/column-menu所示)。事实证明,尽管初始下拉列表是Kendo类型" Popup",但是子菜单是Kendo类型"菜单"。因此,如果您还希望子菜单没有动画,您可以添加以下行:

kendo.ui.Menu.fn.options.animation.open.duration = 0;
kendo.ui.Menu.fn.options.animation.close.duration = 0;

或者,您可以使用animation = false的缩写来禁用动画,因此最终结果可能是:

kendo.ui.Popup.fn.options.animation = false;
kendo.ui.Menu.fn.options.animation = false;

再次注意,这将关闭所有弹出窗口和菜单的动画。