This article is currently in the process of being translated into Russian (~97% done).
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. Попробуйте запустить страницу снова и посмотрите как текст кнопки изменяется если Вы отправили правильно заполненную форму.