Telerik RadGrid FilterDelay 属性在 INS 键上回发

发布于 2024-11-08 18:47:25 字数 487 浏览 4 评论 0原文

我想我被搞砸了,但我想我会问,希望也许有人知道一些我在谷歌上找不到的魔法。

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

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

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

我将其称为 RadGrid 中的错误。仅当过滤器文本框中的字符串发生更改时才应回发。该函数应忽略不可打印的字符,例如 INS(或 UP/DOWN/CAP LOCK/等)。

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

I think I'm screwed here, but thought I would ask in hopes that maybe somebody knows some magic I can't find on Google.

I have a RadGrid setup to filter columns with a FilterDelay="500" value set. FilterDelay causes the grid to automatically do a postback when somebody types something in the filter box (after the specified delay). It's basically an automatic filter (no need to click OK or some other button to activate the filter).

I dig this functionality - but it interferes with another function of my app that is even more important to me - I trap the INS key so the user can just press INS at anytime to add a new row to the grid.

The problem is that with FilterDelay set, it sees the INS key as a keystroke from the user and performs the postback - even though the user has not altered the text in the filter textbox in any way. Which forces a refresh of the page and cancels my add row function.

I would call this a bug in RadGrid. It should only postback if the string in the filter textbox changes. Non printable chars such as INS (or UP/DOWN/CAP LOCK/etc) should be ignored by the function.

So the question: does anybody have any clever ideas that might help me workaround this issue?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

少跟Wǒ拽 2024-11-15 18:47:25

不确定具体如何执行此操作,但在 RadGrid 的 ClientSettings ClientEvents 中,您可以处理 OnCommand 事件。从那里,您可以检测 Filter 事件

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

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

eventArgs.set_cancel(true);

Not sure exactly how you would do it, but in the RadGrid's ClientSettings ClientEvents you can handle the OnCommand event. From there, you can detect a Filter event

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

From there, if you can somehow know the INS key was pressed, you could cancel the filter event

eventArgs.set_cancel(true);

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文