В ASP.net Webforms, как вы определяете, в какое текстовое поле кто-то нажимал ввод? - PullRequest
5 голосов
/ 18 сентября 2008

В ASP.net Webforms как определить, какое текстовое поле кто-то нажал, введите?

Пожалуйста, не отвечайте на Javascript.

Мне нужно разобраться со всем этим в коде использования VB.NET.

Ответы [ 6 ]

2 голосов
/ 18 сентября 2008

Зачем вам нужно определять, какой TextBox был нажат? Вы ищете, на какой объект TextBox фокусировался, чтобы можно было вызвать соответствующее событие нажатия кнопки?

Если вы хотите сделать что-то подобное, я сделал один трюк, чтобы «сгруппировать» соответствующие элементы формы на их собственной панели, а затем соответствующим образом установить свойство «DefaultButton».

Это позволяет мне иметь «Поиск по имени», «Поиск по отделу», «Поиск по идентификатору» и т. Д. Комбинация текстовых полей / кнопок в одной форме и все еще позволяет пользователю вводить параметры запроса, нажимать Введите и получите правильный метод поиска в коде позади.

2 голосов
/ 18 сентября 2008

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

1 голос
/ 18 сентября 2008

В обработчике события «исходный» объект (первый параметр обработчика события) - это объект, вызывающий событие. Введите его в кнопку и получите имя или используйте отражение, чтобы получить информацию из нетипизированного объекта.

Кроме того, если элемент управления является дочерним элементом веб-элемента управления, у которого нет собственных событий (просто говоря ...), то вы можете использовать OnBubbleEvent, чтобы определить, что происходит. В OnBubbleEvent также есть параметр «source», который можно ввести или использовать отражение.

1 голос
/ 18 сентября 2008

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

1 голос
/ 18 сентября 2008

Насколько я знаю, сценарий на стороне сервера не может обнаружить это. Он просто не отправляется на сервер. Это должно быть сделано на стороне клиента (то есть с помощью Javascript), а затем отправлено на сервер.

1 голос
/ 18 сентября 2008

Без использования Javascript вы просто не сможете. Эта информация не передается из клиентского браузера на сервер.

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