Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПвИ / Конспект лекций.doc
Скачиваний:
224
Добавлен:
01.06.2015
Размер:
1.05 Mб
Скачать

Лекция 11. Web-элементы управления. Использование элементов управления.

Для того чтобы упорядочить Web-элементы управления, разделим их на категории:

  • “простые” элементы управления, являющиеся обертками обычных тэгов элементов управления HTML;

  • кнопки;

  • списки, отображающие простые списки элементов;

  • элементы управления, связанные с данными;

  • календари;

  • проверяющие элементы управления.

Простые элементы управления

TextBox – это эквивалент HTML-тэга <input type=”text/password”> или <textarea>. Оператор:

<asp:TextBox ID=”UserName” RunAt=”server” />

создает на Web-форме поле ввода текста и назначает ему программный идентификатор “UserName”. Свойство Text можно использовать для декларативного добавления текста в TextBox, а так же для чтения и изменения этого текста из серверного сценария:

<asp:TextBox ID=”UserName” Text=”Привет” RunAt=”server” />

Считывание содержимого элемента управления TextBox осуществляется с помощью следующего сценария:

string name = UserName.Text;

Свойства Rows и Columns устанавливают размеры TextBox, задавая число строк и столбцов, которые в нем могут отображаться. MaxLength ограничивает максимальное число символов, которые могут быть введены в TextBox. Свойство Wrap управляет активизацией режима переноса строк в многострочном TextBox. Атрибут TextMode принимает ряд значений: SingleLine, MultiLine и Password.

Следующий оператор создает поле ввода пароля с именем Password:

<asp:TextBox ID=”Password” TextMode=”Password” RunAt=”server” />

Чтобы создать многострочное поле ввода, необходимо установить TextMode в MultiLine, а в Rows записать число строк:

<asp:TextBox ID=”Comments” TextMode=”MultiLine” Rows=”10” RunAt=”server” />

Атрибут Rows игнорируется, если TextMode явно не установлено в MultiLine.

В зависимости от значения свойства TextMode TextBox представляет себя в виде тэгов <input type=«text»>, <input type=«password»> или: <textarea>. Вот три тэга <asp:TextBox> и генерируемый ими HTML:

// До...

<asp:TextBox ID="UserName" RunAt="server" />

<asp:TextBox ID="Password" TextMode="Password" RunAt="seryer" />

<asp:TextBox ID="Comments" TextMode="MultiLine" Rows="10" RunAt="server" />

// После...

<input name="UserName" type="text" id="UserName" />

<input name="Password" type="password" id="Password" />

<textarea name="Comments" rows="10" id="Comments"x/textarea>

Если текст в поле TextBox изменился, то после возврата формы элемент управле­ния генерирует событие TextChanged. Обработчик события задается атрибутом OnTextChanged тэга <asp:TextBox>:

<asp:TextBox ID="UserName" OnTextChanged="OnNameChanged" RunAt="server" />

<script language="C#" runat="server"> void OnNameChanged (Object sender, EventArgs e)

{

// Имя изменилось, считать его из TextBox.

string name = UserName.Text;

}

</script>

События TextChanged генерируются только при возврате формы на сервер. По умолчанию элементы управления TextBox сами не инициируют возвраты формы и, таким образом, генерируют событие TextChanged, только если возврат формы был вызван другим элементом управления. Если же установить свойство AutoPost­Back элемента управления TextBox в true, то возвраты формы будут происходить (и событие TextChanged генерироваться) в момент изменения текста в поле ввода:

<asp:TextBox ID="UserName" OnTextChanged="OnNameChanged" AutoPostBack="true" RunAt="server" />

В отличие от полей ввода Windows, генерирующих уведомления EN_CHANGE в ответ на каждый символ, вводимый пользователем, элементы управления TextBox в режиме AutoPostBack генерируют события TextChanged только при потере фоку­са ввода (т. е. в тот момент, когда пользователь переходит к другому элементу управления формы), происшедшей после изменения текста. В противном случае страница, выполняющая возврат формы при вводе каждого символа, работа­ла бы очень медленно.

TextBox — не единственный Web-элемент управления, имеющий свойство Auto­PostBack; его поддерживают также CbeckBox, RadioButton и некоторые другие эле­менты. Если AutoPostBack присутствует в списке свойств элемента управления, то установка его в true вызывает возврат формы (и генерацию событий) в момент изменения состояния элемента управления. В противном случае элементы управ­ления не генерируют события, пока возврат формы не будет вызван каким-либо внешним фактором.

Соседние файлы в папке ПвИ