KNOW INTUIT, Лекция, AutoPostBack

ValidationSummary

Класът ValidationSummary ви позволява да показвате обобщена информация за всички валидатори на страницата. Може да се показва в различни форми:

  • BulletList - списък с икони;
  • Списък - редовен списък;
  • SingleParagraph - обикновен параграф.

Информацията може да се показва на страницата или в информационния прозорец, ако ShowMessage е зададено на True. За всички валидатори се показва свойството Съобщение за грешка, а не текстът. Текстът се изобразява в самия валидатор.

Да се ​​върнем на страницата Registration.aspx. Нека добавим още едно поле за въвеждане на парола:

Свойството CausesValidation работи, когато контролата загуби фокус. В такъв случай свързаният с него валидатор показва стойността на своето свойство Text.

Искаме името да бъде въведено и паролата да съвпадат и в двете текстови полета.

Плъзнете RequiredFieldValidator и го пуснете във формуляра. Задайте ControlToValidate на txtName. Вторият валидатор е Required FieldValidator за паролата. Третият е CompareValidator, който сравнява стойността на паролите:

И също един ValidationSummary:

Нека сложим бутон, при натискане на който ще се извърши проверка:

Манипулаторът за щракване върху бутон потвърждава въвеждането, ако проверката е била успешна:

Всички валидации на тази страница се извършват при клиента. Можете дори да спрете сървъра, за да сте сигурни. Само когато всички данни са въведени правилно, формулярът се изпраща на сървъра.

CustomValidator

Ако трябва да извършите валидиране, което не може да се направи със стандартни валидатори, персонализираният валидатор влиза в действие. В класа CustomValidator можете да напишете всекифункция, която ще проверява стойностите както от страната на сървъра, така и от страната на клиента. Класически пример е проверка на число за четност.

Нека напишем персонализиран валидатор, който ще проверява паролата за дължина от поне 5 знака:

Известно е, че ако функцията, свързана с onclick, върне булево false, формулярът няма да бъде изпратен на сървъра:

Нека извършим същото валидиране на сървъра. За да започнете валидиране на сървъра, използвайте свойството OnServerValidate. Функцията, която е посочена в него, е включена в класа на страницата и трябва да бъде написана на C#:

ServerValidate се извиква след събитието Page_Load, така че не можете, както в „Сървърни контроли“, да извеждате резултати на Page_Load.

Можете също така да стартирате валидиране от страна на клиента и от страна на сървъра едновременно:

За да деактивирате възможността за генериране на клиентски код за всички валидатори, можете да напишете

Можете да използвате звуци и картини, за да покажете съобщение за грешка. За да направите това, трябва да напишете в свойството ErrorMessage не текст, а съответните HTML тагове, например

Групи за валидиране

Понякога е необходимо на страницата да има няколко бутона, като при натискане на всеки от тях се въвежда информация от логически свързани помежду си групи контроли. Следователно трябва да се проверяват само стойности от тази група. Всички валидатори и контроли, чрез които е възможно въвеждане, имат свойство ValidationGroup. Функцията Page.Validate() също може да се използва с този параметър. Ако има щракване върху бутон с набора ValidationGroup, стартира валидирането на тези валидатори, които имат същото свойство.

Заключение

Целта на формулярите е да получават данни от потребителите, но данните са безсмислени, ако савъведено неправилно. Елементите на валидатора ни позволяват да автоматизираме рутинните дейности по валидиране на данни и да гарантираме, че въведените данни отговарят на нашите изисквания.