logo search
[ПСП] / lab22

Элементы управления для проверки вводимых пользователем данных

Последняя разновидность элементов управления WebForm — это элементы управле­ния, которые применяются для проверки вводимых пользователем данных. Наи­более важные элементы управления этого типа представлены в табл. 14.15.

Таблица 14.15. Элементы управления для проверки данных

Давайте создадим новый проект С# на основе шаблона Web Application и назо­вем его ValidateWebApp. Изменим имя файла *.aspx на defaultaspx, а затем откро­ем этот файл как графический шаблон времени разработки (чтобы можно было помещать элементы управления). Затем при помощи перетаскивания элементов управления из Toolbox создадим интерфейс, похожий на представленный на рис. 14.49. Все текстовые надписи можно сделать при помощи обычного кода HTML — ис­пользовать объект Label не обязательно.

А теперь посмотрим, как можно проверять правильность вводимых пользова­телем данных при помощи элементов управления WebForm. Например, нам нуж­но убедиться, что текстовое поле txtEMai 1 пользователь не оставил пустым. Проверка будет производиться при нажатии кнопки Submit, то есть при попытке пользовате­ля отправить данные на сервер. Самый простой способ реализовать такую провер­ку — воспользоваться элементом управления Requi redFieldVal idator.

Рис. 14.49. Простой интерфейс для ввода данных

Добавим Requl redFieldValidator на страницу при помощи Toolbox и откроем его свойства (рис. 14.50). Свойств, которые обязательно нужно настроить, два: Соп-trolToValidate (здесь нужно выбрать имя текстового поля, обязательного для за­полнения, — в нашем случае txtEMail) и ErrorMessage — сообщение об ошибке, ко­торое будет выдаваться пользователю.

Вот и все. Если мы посмотрим, какой код в файле *.aspx сгенерировала для нас среда разработки Visual Studio.NET,то он будет таким:

<asp:Requi redFi eldVali dator id=RequiredFieldValidatorl style="Z-INDEX: 109: .

LEFT: 351px; POSITION: absolute: TOP: 204px"

runat="server"

ErrorMessage="We need your e-mail Address!"

ControlToValidate="txtEMail">

</asp:Requi redFi eldVali dator>

Кроме того, в производном от Page классе С# для нашей страницы ASP.NET (в том файле, который указан в атрибуте Codebehind) появится новая переменная:

public class WebForml : System.Web.UI.Page

{

protected System.Web.Ul.WebControls.Button btnSubmit: protected System.Web.UI.WebControls.Requi redFieldVa1idator

ReqiredFieldValidatorl:

protected System.Web.UI.WebControls.TextBox txtEMail: protected System.Web.UI.WebControls.TextBox txtLName: protected System.Web.Ul.WebControls.TextBox txtFName;

}

Рис. 14.50. Свойства объекта RequiredFieldValidator

Рис. 14.51. RequiredReldvalidator в действии

Сохраним страницу и обновим ее в окне браузера. С виду ничто не изменится. Однако если мы попробуем нажать кнопку Submit, не заполнив поле txtEMai 1, то на странице рядом с этим полем появится сообщение об ошибке (рис. 14.51).

Если мы введем данные в текстовое поле и нажмем Submit, надпись исчезнет. Если в окне браузера просмотреть код web-страницы, то мы заметим в нем новую функцию JavaScript, которая была создана для нас без нашего участия. На самом деле все еще интереснее: если элемент управления WebForm обнаружит, что браузер не поддерживает работу со скриптами, то логика проверки вводимых данных бу­дет реализована для выполнения на сервере!

Код приложения ValidateWebApp можно найти в подкаталоге Chapter 14.