Проверка содержимого текстового поля на размытие путем вызова метода на стороне сервера без влияния на поведение страницы - PullRequest
0 голосов
/ 21 октября 2010

У меня есть textbox в одном столбце сетки, где при вводе определенного значения и потере фокуса текстового поля, следует отправлять сообщения на сервер, чтобы получить текст, проверенный с помощью метода на стороне сервера. Если запись верна, будет возвращен результирующий набор для заполнения остальных ячеек строки, в противном случае bgcolor текстового поля необходимо изменить на красный.

Я попытался отправить обратно очевидным способом, то есть сделать текстовое поле autopostback в качестве true и подключить обработчик событий OnTextChanged на стороне сервера для проверки введенного значения.

Он работает с этой настройкой, но также влияет на поведение остальных элементов управления страницей. Например, если я нажимаю кнопку в другой сетке после ввода некоторого текста в текстовое поле, вызывается обработчик OnTextChanged, что предотвращает событие click кнопки, которое я также хочу вызвать для выполнения ее функциональности.

Просьба предложить, какие альтернативы / исправления я должен выполнить, чтобы включить проверку содержимого на стороне текстового поля на стороне сервера, а также заставить другие элементы управления / панели обновления работать, как ожидалось.

Ответы [ 2 ]

1 голос
/ 23 октября 2010

Я тупой.Я попробовал все от создания PageMethods, UpdatePanels до jQuery, как намекнуло в ответе Линкольнка.Но в конечном итоге сработало удаление атрибута Autopostback из элемента управления textbox.

После его удаления событие OnTextChanged выполнялось каждый раз, когда после изменения текста инициировалась любая обратная передача сервера.Таким образом, выполняется метод OnTextChanged и метод другого элемента управления.:)

0 голосов
/ 21 октября 2010

Я могу придумать пару общих подходов.

  1. Создайте веб-сервис с вашей процедурой проверки и вручную сделайте вызов (jQuery или любой другой), когда текст изменится.Обновите отображение клиента вручную, когда вы получите результат.

  2. Преобразуйте столбец gridview в шаблонное поле.Добавьте CustomValidator и оберните текстовое поле и валидатор в UpdatePanel.Установите для текстового поля автоматический постбэк, а для UpdatePanel - условное обновление, чтобы обновлялось только то, которое вы используете.

Опция 1 является своего рода обходом типичного asp.net process, и вы все равно захотите проверить все на стороне сервера, когда страница будет отправлена ​​обратно.

Вариант 2 может иметь проблемы с производительностью, поскольку вы снова нажимаете на страницу каждый раз, когда выполняете проверку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...