无法覆盖 Kendo Grid 过滤器消息 (ASP.NET MVC)

Posted

技术标签:

【中文标题】无法覆盖 Kendo Grid 过滤器消息 (ASP.NET MVC)【英文标题】:Cannot override Kendo Grid filter messages (ASP.NET MVC) 【发布时间】:2014-12-20 11:16:42 【问题描述】:

我有 Kendo Grid 过滤器消息被覆盖(或者至少我想要一个):

(...)
.Scrollable()
.Filterable(f => f.Messages(msg => msg.Clear("XXXXXXXX")))
.Sortable()
(...)

但检查后我仍然可以看到默认消息。所以我尝试将其设置为列:

(...)
column.Bound(m => m.MyProperty).Filterable(f => f.Messages(msg => msg.Clear("XXXXXXXX")))
(...)

而且效果很好!该消息被覆盖为“XXXXXXXX”。

生成的 javascript 包含在每一列上设置的默认过滤器消息定义,因此很明显,在网格上设置的自定义消息被 MVC 助手在每一列上设置的消息覆盖。

有没有办法使用 MVC 助手在网格上设置自定义过滤器消息?我有数十个包含数百列的网格,因此在每一列上设置自定义消息只是为了更改清除按钮文本不被视为一种选择(目前)。

我可以创建一些简单的脚本并将其附加到 FilterMenuOpen 事件,但有没有更简单的方法?不用弄乱 Kendo 的本地化资源?

【问题讨论】:

我遇到了同样的问题,我猜想为每一列指定文本或绑定到 js 事件并更改清除按钮文本只是解决方案。我选择了第一个。 @Andrzej - 你很接近,看看下面的答案。 @JarosławKończak - 见下文。 【参考方案1】:

将近 18 个月后,但以防其他人偶然发现此线程并需要答案。

(...)
.Scrollable()
.Filterable(f => f.Messages(msg => msg.Info("XXXXXXXX")))
.Sortable()
(...)

.Info 方法允许您更改所有列的过滤器消息。也可以通过每列的.Filterable()方法设置消息。

【讨论】:

以上是关于无法覆盖 Kendo Grid 过滤器消息 (ASP.NET MVC)的主要内容,如果未能解决你的问题,请参考以下文章

Telerik Kendo Grid 重新绑定问题

Kendo网格过滤无法正常工作

带有模态问题的Jquery Dialog中的Kendo Grid

javascript Kendo Grid默认过滤器操作员

如何强制 Kendo Grid 在列上使用数字过滤器

kendo grid过滤