TOC

This article is currently in the process of being translated into Russian (~97% done).

Validation:

Validation - RequiredFieldValidator

RequiredFieldValidator на самом деле очень прост и полезен. Вы можете использовать его чтобы убедиться, что пользователь заполнил TextBox. Давайте попробуем добавить RequiredFieldValidator на страницу. Также, добавим TextBox для проверки и кнопку подтверждения ввода.

<form id="form1" runat="server">
    Your name:<br />
    <asp:TextBox runat="server" id="txtName" />
    <asp:RequiredFieldValidator runat="server" id="reqName" controltovalidate="txtName" errormessage="Please enter your name!" />
    <br /><br />
    <asp:Button runat="server" id="btnSubmitForm" text="Ok" />
</form>

По идее, это все что нам нужно для тестирования. Не вдаваясь в детали, попробуем запустить страницу и нажать на кнопку. Вы должны увидеть что-то типа этого:

Если Ваш браузер поддерживает JavaScript, то Вы заметите, что страница не была отправлена на сервер - проверка прошла на стороне клиента! Это - одна из крутых штук ASP.NET проверки. Проверка может быть осуществлена на стороне сервера если необходимо. Чтобы активировать эту опцию, Вы можете добавить ключ enableclientscript="false" в RequiredFieldValidator и нажать кнопку снова. Теперь Вы увидете, что страница была отправлена на сервер, но результат тот же - проверка все еще работает!

Сейчас кнопка ничего не делает, кроме как возвращает страницу если она корректно заполнена. Изменим это добавив обработчик события onclick.

<asp:Button runat="server" id="btnSubmitForm" text="Ok" onclick="btnSubmitForm_Click" />

В CodeBehind классе добавим следующий код:

protected void btnSubmitForm_Click(object sender, EventArgs e)
{
    if(Page.IsValid)
    {
        btnSubmitForm.Text = "My form is valid!";
    }
}

Заметьте, мы проверяем правильность заполнения страницы до выполнения каких-либо действий. Важно, что если проверка на стороне клиента не используется, код выполнится. Так как проверка выполняется теперь на сервере, Вам необходимо позаботиться о том, чтобы нужный код не выполнился пока Вам это не надо. Все предельно просто. Просто проверяется параметр Page.IsValid. Попробуйте запустить страницу снова и посмотрите как текст кнопки изменяется если Вы отправили правильно заполненную форму.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!