【问题标题】:How to modify Filter in Kendo UI Grid?如何在 Kendo UI Grid 中修改过滤器?
【发布时间】:2015-10-07 08:37:43
【问题描述】:

我有一个带有默认过滤器的剑道网格,我想进行一点修改。

在下拉列表中,我们有不同的限制,('Starts with'、'Contains'等)。
我想要的是:

  1. 默认为“包含”设置“已选择”
  2. 加载时将焦点放在下拉列表下方的输入框中。

谢谢!

【问题讨论】:

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


    【解决方案1】:

    要使某些运算符默认,您只需更改过滤器选项中的顺序:

    filterable: {
                            extra: false,
                            operators: {
                                string: {
                                    contains: "Contains"
                                    eq: "Is equal to",
                                    neq: "Is not equal to"
                                }
                            }
                        }
    

    为了专注于文本字段,您可以使用filterMenueInit Event。 对于您的情况,它看起来像这样:

    filterMenuInit: function(e) {
        var popup = e.container.data("kendoPopup");
        popup.bind("activate", function (e) {
            this.element.find("input").focus();
        });
    }
    

    首先您需要为过滤器选择KendoWidget - kendoPopup。 之后,您在弹出窗口完全加载后触发的事件上绑定函数 - activate 事件。在函数中,您可以根据需要更新控制状态。

    【讨论】:

    • 第一个问题解决了。但是第二个,e.container.find("text") 不起作用,我将其更改为:e.container.find("input"),它找到了我的输入元素,但不想关注它。
    • 是的,我为您的具体情况编写了没有正确选择器的示例。但是e.container.find 可以返回元素数组。检查里面的内容并选择一个您需要关注的内容。一些关于焦点方法的文档w3schools.com/jsref/met_html_focus.asp
    • 我猜它把注意力放在它上面,后来它失去了它。为了检查它是否会影响我的输入,我做了:textField.val('Hello'),它可以工作。我在负载输入中看到 Hello。但是 for focus 似乎不起作用!
    • 是的,你说得对,我现在更新我的答案,看看:)
    • Greattttt,运行顺畅!!!如果你能用几句话解释你做了什么,真的很感激!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-30
    • 2018-08-15
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    • 2013-10-27
    相关资源
    最近更新 更多