如何通过Enter keypress在kendo ui网格上触发过滤器事件?

时间:2015-01-20 09:10:48

标签: javascript jquery telerik kendo-grid

我使用的是Kendo UI v2014.2.716

我有一个网格,包括分页,排序,服务器端过滤,我为我的网格启用了过滤行。

当我测试这个过滤器时,我意识到:

  • 过滤器触发时:
    • 当输入过滤器失去焦点时。
    • 当用户选择过滤菜单项时。
    • 当用户点击删除过滤器按钮时。

当按键进入输入过滤器时,这会使页面回发。

但是当按键输入输入过滤器时,我希望过滤器闪光。

所以我在列上使用了模板:

                { field: "ShortTitle", title: "Title", filterable: { cell: { template: function (input) { input.width("60%"); input.keydown(preventPost); } }} },

编写一个函数来防止回发:

function preventPost(e) {
        if (e.keyCode === 13) {
            e.preventDefault();             
        }
    }

但是当用户按ENTER键时,我不知道如何触发事件过滤器。

我尝试在preventPost函数中调用onblur,但它无效。

    function preventPost(e) {
        if (e.keyCode === 13) {
            e.preventDefault();
            this.onblur();
        }
    }

请告诉我这样做的方法。非常感谢。

1 个答案:

答案 0 :(得分:1)

您可以在列字段中添加功能

filterable: {
    cell: {
        operator: "contains",
        template: function (args) {
            args.element.css("width", "90%").addClass("k-textbox").keydown(function (e) {
                setTimeout(function () {
                    $(e.target).trigger("change");
                });
            });
        },
        showOperators: false
    }
}

有关详细信息,请参阅此链接 https://docs.telerik.com/kendo-ui/controls/data-management/grid/how-to/filtering/grid-filter-as-you-type