RequiredFieldValidator. Проверка правильности заполнения полей в Asp.net. Часть 2

Рис.2. Ошибка при проверке заполнения формы и данные отправлены

Эта статья является продолжением RequiredFieldValidator. Проверка правильности заполнения полей в Asp.net. Часть 1 и посвящена описанию тонкостей передачи данных при проверке. В качестве исходных данных будем использовать код из статьи RequiredFieldValidator. Проверка правильности заполнения полей в Asp.net. Часть 1.

Установите EnableClientScript = True, если он еще не установлен. Суть параметра EnableClientScript в том, что приложение сначала пытается провести проверку на стороне пользователя, не нагружая лишний раз сервер. Если проверку на стороне пользователя провести не удалось, то тогда проверка будет проведена на стороне сервера. В отличие от языка PHP, разработчику не нужно делать клиентскую и серверную проверки.

Для кнопки "Отправить" добавим обработчик нажатия OnClick="btn_Click".

<asp:Button ID="btn" runat="server" Text="Отправить" OnClick="btn_Click" />

 

Код обработчика для нажатия кнопки:

        protected void btn_Click(object sender, EventArgs e)
        {
             Label1.Text = "Данные отправлены";
        }

 

Запустите приложение при EnableClientScript = True. При нажатии кнопки "Отправить" с пустыми полями в окне браузера будет показано 1 сообщение о том, что не заполнено поле Номер (Рис.1).

Рис.1. Ошибка при проверке заполнения формы

Рис.1. Ошибка при проверке заполнения формы

Так происходит потому, что проверка происходит на стороне клиента без отправки на сервер.

Теперь рассмотрим проверку на стороне сервера.

Запустите приложение при EnableClientScript = False.  При нажатии кнопки "Отправить" с пустыми полями в окне браузера будут показаны 2 сообщения – о том, что не заполнено поле Номер и Данные отправлены (Рис.2).

Рис.2. Ошибка при проверке заполнения формы и данные отправлены

Рис.2. Ошибка при проверке заполнения формы и данные отправлены

 

Проверки заполнения полей на стороне клиента не происходит и данные сразу отправляются на сервер. Событие onClick для кнопки – это не то же самое, что отправка формы. Потому при нажатии кнопки "Отправить" происходит и проверка данных контролом RequiredFieldValidator, и работает обработчик btn_Click.

Для таких случаев в code-behind нужно добавлять проверку правильности данных. Для этого в ASP.Net есть мето IsValid. Метод IsValid возвращает информацию о том, успешно ли пройдены проверки на странице или нет.

В CS файле пропишите в обработчике btn_Click вывод сообщения для условия, когда проверки пройдены успешно и когда не успешно. Замените код обработчика btn_Click и почувствуйте разницу:

 

Проверка правильности введенных данных для обработчика onClick:

        protected void btn_Click(object sender, EventArgs e)
        {
            if (Page.IsValid == true)
            {
                Label1.Text = "Данные отправлены";
                //Код для дальнейшей обраобтки данных
            }
            else
            {
                Label1.Text = "Данные не отправлены";
            }
        }

 

Такая отправка была только для примера. Для отправки данных формы на сервер никаких обработчиков onClick добавлять для кнопки не надо!


Комментариев нет »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment






MarkiMarta.ru. Записки отца-программиста" с 2009 г.
Категория информационной продукции 18+
Яндекс.Метрика