Telerik RadGrid FilterDelay постбэкивает ключ INS - PullRequest
2 голосов
/ 21 мая 2011

Я думаю, что я напортачил здесь, но подумал, что я спрошу в надежде, что, возможно, кто-то знает магию, которую я не могу найти в Google.

У меня есть настройка RadGrid для фильтрации столбцов с установленным значением FilterDelay = "500". FilterDelay заставляет сетку автоматически выполнять обратную передачу, когда кто-то вводит что-то в поле фильтра (после указанной задержки). По сути, это автоматический фильтр (не нужно нажимать кнопку ОК или какую-либо другую кнопку, чтобы активировать фильтр).

Я копаю эту функцию - но она мешает другой функции моего приложения, которая для меня даже важнее - я перехватываю клавишу INS, чтобы пользователь мог просто нажать INS в любое время, чтобы добавить новую строку в сетку.

Проблема в том, что с установленным FilterDelay он видит клавишу INS как нажатие клавиши от пользователя и выполняет обратную передачу - даже если пользователь никак не изменил текст в текстовом поле фильтра. Который вызывает обновление страницы и отменяет мою функцию добавления строки.

Я бы назвал это ошибкой в ​​RadGrid. Он должен выполнять обратную передачу только в случае изменения строки в текстовом поле фильтра. Непечатаемые символы, такие как INS (или UP / DOWN / CAP LOCK / etc), должны игнорироваться функцией.

Итак, вопрос: есть ли у кого-нибудь умные идеи, которые могут помочь мне обойти эту проблему?

1 Ответ

1 голос
/ 18 июля 2011

Не знаю точно, как бы вы это сделали, но в Radigrid ClientSettings ClientEvents вы можете обработать событие OnCommand .Оттуда вы можете обнаружить событие Filter

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

Оттуда, если вы можете каким-то образом узнать, что клавиша INS была нажата, вы можете отменить событие фильтра

eventArgs.set_cancel(true);

...