INSID上的Telerik RadGrid FilterDelay属性回发

时间:2011-05-20 22:09:47

标签: asp.net telerik radgrid

我想我已经搞砸了,但我想我会希望有人知道我在Google上找不到的魔法。

我有一个RadGrid设置来过滤具有FilterDelay =“500”值集的列。当有人在过滤器框中键入内容时(在指定的延迟之后),FilterDelay会导致网格自动进行回发。它基本上是一个自动过滤器(无需单击“确定”或其他按钮来激活过滤器)。

我挖掘了这个功能 - 但它干扰了我的应用程序的另一个功能,这对我来说更重要 - 我捕获INS键,以便用户可以随时按INS以向网格添加新行。

问题是,如果设置了FilterDelay,它会将INS键视为来自用户的击键并执行回发 - 即使用户没有以任何方式更改过滤器文本框中的文本。这会强制刷新页面并取消我的添加行功能。

我认为这是RadGrid中的一个错误。它应该仅在过滤器文本框中的字符串更改时回发。该函数应忽略不可打印的字符,如INS(或UP / DOWN / CAP LOCK /等)。

所以问题是:是否有人有任何聪明的想法可以帮助我解决这个问题?

1 个答案:

答案 0 :(得分:1)

不确定如何做到这一点,但在RadGrid的 ClientSettings ClientEvents 中,您可以处理 OnCommand 事件。从那里,您可以检测到过滤器事件

if(eventArgs.get_commandName() == "Filter")

从那里,如果你能以某种方式知道按下INS键,你可以取消过滤器事件

eventArgs.set_cancel(true);