Фокусировка, обход и кнопка по умолчанию в ASP.NET

ASP.NET   20 февраля 2012  Автор статьи:  

В данной статье я хочу рассмотреть проблему фокусировки, обхода элементов управления при нажатии клавиши TAB и кнопку по умолчанию. Какой — то элемент имеет фокус это означает, что он выделен или на нем стоит курсор. Для того, чтобы сделать это программно необходимо вызвать метод Focus() у данного контрола. Создадим следующую страницу Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Тестовое.Default" %>












На странице у нас имеется два поля для ввода текста и две кнопки. Теперь нам допустим надо, чтобы при заходе на страницу курсор пользователя стоял на втором TextBox. Тогда нам в Page_Load() достаточно поместить следующий код:

protected void Page_Load(object sender, EventArgs e)
{
TextBox2.Focus();
}

После запуска страницы мы видим, что курсор расположен во втором текстовом поле. Очень часто при заполнении форм пользователем требуется создать порядок обхода отличный от генерируемого HTML. Порядок обхода влияет на то, каким окажется следующий элемент управления (control). За всем этим следит свойство TabIndex. Изначально у всех оно равно 0, но вы можете указать свои значения в пределах int, тогда при нажатии клавиши TAB пользователь перейдет на следующий элемент управления, который во — первых умеет фокусироваться, во вторых содержит следующий наименьший индекс. Индекс может быть отрицательным, поэтому первым при нажатии клавиши TAB может отобразиться и элемент с индексом -1000. Особенно актуально данная проблема может встать при создании таблиц, потому что вам может понадобиться обход по умолчанию как слева направо и так далее вниз, так и по столбцам. Последнее о чем я хочу сказать в этой статье это кнопку по умолчанию. Данное свойство задает кнопку, которая будет нажата при нажатии клавиши enter. Это очень полезно, потому что во первых средствами HTML нельзя задать кнопку, которая будет выбрана по умолчанию. HTML при нажатии enter выбирает кнопку, которая первая была в сгенерированном коде. Таким образом, если вы расположите кнопку регистрации выше, чем кнопка вход, после ввода имени и пароль и нажатии кнопки Enter пользователь попадет не на страницу с личным кабинетом, а в окошко регистрации. Таким образом, чтобы связать нажатие кнопки Enter и кнопку в ASP.NET необходимо написать:


Т.е у формы надо указать свойство defaultbutton, записав в него ID кнопки.

Научиться программировать

  • на Delphi

  • на Java

  • на C++