Отмена действия нажатия клавиши [Enter] на Telerik RadGrid - PullRequest
3 голосов
/ 07 февраля 2012

У меня есть Telerik Radgrid , содержащий все действительные имена пользователей и пароли, которые можно использовать для разблокировки функций на моей веб-странице.

Пароль зашифрован, поэтому вам нужно нажать настрока для расшифровки и показать действительный пароль.Все имена пользователей и пароли могут быть изменены администратором

Когда администратор нажимает [ENTER], чтобы отправить новую комбинацию имени пользователя / пароля (вместо нажатия кнопки отправки), новая комбинация фактически передается (что хорошо).


Однако моя проблема в том, что по умолчанию RadGrid выбирает следующую строку, которая расшифровывает пароль и позволяет редактировать имя пользователя / пароль.

В идеале, нажав[ENTER] будет отправлять только комбинацию имени пользователя и пароля, без выбора какой-либо другой строки.Если это невозможно, нажатие [ENTER] не должно ничего делать.

Если вы пробовали следующий код javascript:

<script type="text/javascript">                
    function KeyPressed(sender, eventArgs) {
        if (eventArgs.get_keyCode() == 13) 
        {
            alert("Cancelling event");
            eventArgs.set_cancel(true);
        }
    }
</script>

Поднимается окно предупреждения, но событие [ENTER]не прерывается.

Редактировать: Обратите внимание, что предупреждение предназначено только для тестирования!

Я также добавил этот код в свой элемент управления RadGrid, чтобы добавить захват KeyPress

    <ClientSettings EnableRowHoverStyle="true" EnablePostBackOnRowClick="true" ClientEvents-OnKeyPress="KeyPressed" AllowKeyboardNavigation="true">
        <Selecting AllowRowSelect="True" />
    </ClientSettings>

Мой вопрос: как мне прервать событие нажатия клавиши [ENTER]?Или изменить свое поведение?Любые советы будут оценены


Я использую VB.net в Visual Studio 2008. Я использую ASP.net версии 2.0

1 Ответ

6 голосов
/ 08 февраля 2012

Вот мой код JavaScript для отмены события на клавиатуре ввода.

 function CheckKey() {
            if (event.keyCode == 13) {
                CancelEvent();
            }
        }
 function CancelEvent() {
            var e = window.event;

            e.cancelBubble = true;
            e.returnValue = false;
            if (e.stopPropagation) {
                e.stopPropagation();
                e.preventDefault();
            }        
        }
...