如何通过 Enter 键在剑道 UI 网格上触发过滤器事件

How to fire filter event on kendo ui grid by Enter keypress?

本文关键字:网格 事件 过滤器 UI Enter 何通过      更新时间:2023-09-26

我使用剑道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 时如何触发事件过滤器。

我尝试在预防发布功能中调用 onblur,但它不起作用。

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

请告诉我如何做到这一点。非常感谢。

您可以在列字段中添加一个函数

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