【问题标题】:Need specific masking functionality for Kendo Grid Filters需要 Kendo Grid 过滤器的特定遮罩功能
【发布时间】:2018-04-06 05:12:15
【问题描述】:

我目前正在向作为日期的剑道网格列添加日期掩码。不过,我遇到了两个问题。当我使用下面的代码全局添加掩码时,它按预期工作。

 function runDateMaskingUtility() {
            $("[data-role='datepicker']").each(function () {
                var datepicker = $(this);
                datepicker.kendoMaskedTextBox({
                    mask: "00/00/0000"
                });

                datepicker.kendoDatePicker({
                    format: "MM/dd/yyyy"
                });

                datepicker.closest(".k-datepicker")
                    .add(datepicker)
                    .removeClass("k-textbox");
            });                
        }

现在,当我这样做时,它会在列的过滤器标题中正确添加掩码。问题是我们的日期格式如下:

3/01/2018 或 11/01/2018

当用户使用过滤器时,它会在月份的前面附加一个数字的零,在这种情况下,过滤器不会找到与其匹配的字符串。当数据类似于 (3/01/2018) 时寻找 (03/01/2018)。我考虑过检查我们所有的剃刀网格定义,并将日期格式化为无论如何都有两位数的月份,但希望不是更新几十页,而是有一种方法可以让蒙版正确处理这个问题。

第二个问题是,即使列的过滤器标题被屏蔽,当您单击列顶部的下拉菜单进行高级过滤时,它们不包含日期输入的屏蔽。我很确定这是因为这些是动态的,所以当我运行屏蔽功能时,它不会触及这些过滤器输入。我怎样才能将掩蔽应用到这些过滤器?我试图绑定到“过滤器”列表项的悬停事件,然后显示高级过滤器表单但没有成功。提前致谢!

【问题讨论】:

  • 真的,从来没有人在堆栈中回答任何剑道问题......奇怪。
  • 可能是因为你的问题不切实际。我的意思是,描述太多,很难重现您的错误来测试并尝试给出答案。剑道标签不是那么受欢迎,所以尽可能发布一个简洁的问题 - 这非常重要 - 如果可能的话,一个工作演示(dojo.telerik.com)。另外,如果您有两个问题,请先尝试发布一个,然后在获得您的帮助并尝试自己解决第二个问题后,如果没有成功,则将其作为新问题发布。

标签: javascript kendo-ui kendo-grid masking


【解决方案1】:

根据kendoMaskedTextBox(https://docs.telerik.com/kendo-ui/api/javascript/ui/maskedtextbox/configuration/mask#mask) 的文档,数字支持以下掩码规则:

  • 0 - 数字。接受 0 到 9 之间的任何数字。
  • 9 - 数字或空格。接受 0 到 9 之间的任何数字,外加空格。
  • # - 数字或空格。类似于 9 规则,但也允许使用 (+) 和 (-) 符号。

鉴于您希望接受 0 和 0 之间的两个数字以及空格,您应该使用:

datepicker.kendoMaskedTextBox({
    mask: "90/90/0000"
});

代替:

datepicker.kendoMaskedTextBox({
    mask: "00/00/0000"
});

我希望这能回答你的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-02
    • 2020-08-21
    • 2016-01-23
    • 1970-01-01
    • 2020-12-19
    • 1970-01-01
    • 2021-11-13
    相关资源
    最近更新 更多