В зависимости от того, как вы хотите, чтобы ваш рабочий процесс, или каковы ваши спецификации, у вас есть 2 варианта:
Установить, если со стороны сервера. Как упоминал Джон, вы можете использовать метод Focus()
, доступный элементам управления пользовательского интерфейса. Это применит фокус к элементу управления, когда ваша страница будет отображаться в браузере. Однако в результате взаимодействия пользователя с другими элементами на странице вы потеряете его.
Установите его на стороне клиента, используя JavaScript. Это даст вам больше гибкости, поскольку вы можете применить фокус на основе взаимодействия с пользователем.
Чтобы применить фокус на стороне клиента, вы можете использовать DOM (объектную модель документа). Вам нужно получить ссылку на элемент управления, а затем вызвать метод focus()
:
document.getElementById (txtUserName) .focus ();
То есть, если идентификатор элемента управления (как он зарегистрирован на стороне клиента) равен txtUserName
. В зависимости от макета вашей страницы это будет менее вероятно, и вы можете столкнуться с проблемами, если вы измените макет, так что это на самом деле не лучшая практика.
Хорошей практикой является регистрация переменной JavaScript, целью которой является сохранение идентификатора клиента элемента управления, который будет отображаться в HTML.
Вы можете сделать это с помощью ClientScriptManager class:
ClientScript.RegisterClientScriptBlock(this.GetType(), "setFocus", "var focusFieldId = '" + txtUserName.ClientID + "';", true);
и затем на стороне клиента вы можете сказать
document.getElementById(focusFieldId).focus();
Вы можете преобразовать это, например, в метод с именем setUserNameFocus()
, а затем вызвать этот метод для любого события на стороне клиента, которое вы хотите. Например, одной из популярных практик является сохранение акцента на определенном поле, когда пользователь нажимает на место на странице. Например, ваш элемент HTML body
может выглядеть следующим образом, если вы не хотите терять фокус для своего элемента:
<body onload="setUserNameFocus();" onclick="setUserNameFocus();">