Помогни ни да направим Uroci.net по - богат! Добави урок

Как работи ASP.NET

bubust   трудност:    видян: 27943



- Валидиращи контроли

Eдно от най-общите изисквания за всяка Web апликация е възможността да се извърши валидизация от клиентската страна (client-side) за въвежданията (input). В стандартния HTMLняма начин за такава валидизация. Microsoft поддържа серия от валидизационни контроли в ASP.NET които автоматизират валидизацията откъм клиентската страна. Валидизационните контроли в ASP.NET са умни; те извършват валидизацията откъм клиента ако е възможно. Ако клиентът може да обработва DHTML, валидизационните контроли пращат кода надолу към клиента. Ако браузера е по-лесно достъпен, валидизационния код се изпълнява на сървъра. От гледна точка на разработчика, кодирането на контролите е по един и същи начин. Това означава сериозен валидизационен код, който може да върви на всички браузери. Да опитаме от самото начало. Добавете нова форма Web Form към вашия проект и й дайте име UserInfo.aspx. Сменете свойството Layout на UserInfo страницата на FlowLayout. Кликнете в Toolbox и довлечете текстова кутия от панел WebForms върху Web формата. Сега кликнете вдясно на текстовата кутия, така че да видите курсора и натиснете клавиш Enter за да се преместите на следващия ред. От Toolbox, довлечете бутон от панел Web Forms и го пуснете на този ред под текстовата кутия. Сега, от Toolbox, довлечете контрол RequiredFieldValidator от панел Web Forms и го пуснете след текстовата кутия. Контролът RequiredFieldValidator проверява дали конкретното поле е запълнено. След като разположите контрола RequiredFieldValidator върху страницата, го вържете към входен (input) контрол като TextBox, CheckBox, или DropDownList. В този случай ще го вържите към текстовата кутия. Кликнете веднаж върху RequiredFieldValidator и в прозореца Properties, намерете свойство ControlToValidate. В падащия списък ще видите само TextBox1; коректно е, изберете го. Готови сте за първия тест. Преди да стартирате проекта, дясно кликване върху UserInfo.aspx в прозореца Solution Explorer и изберете Set As Start Page. Нищо не би трябвало да смени в самата страница. Страницате се появява в Internet Explorer. Кликнете върху бутона без да въвеждате нещо в текстовата кутия. Незабавно се появява съобщение RequiredFieldValidator вдясно на текстовата кутия. Сега въведете нещо в текстовата кутия и пак кликнете бутона. Текстът RequiredFieldValidator изчезва, и въведената стойност си стои в текстовата кутия. Това означава, че присъединителната акция е започнала и вие правите обиколка към сървъра. Фактът, че текстът стои текстовата кутия означава че ASP.NET автоматично го връща от кода написан от страната на сървъра (server-side) обратно в текстовата кутия. Ако използвате IE 4.0 или по-висок, валидизацията се извършва от страната на клиента. Това позволява да получите незабавна обратна връзка, че полето е празно, когато сте спесифицирали, че се изисква стойност. След като попълните стойността, изпращате данните на сървъра и извършвате обиколка клиент - сървър. Можете да модифицирате съобщението за грешка чрез смяна на свойствата.

Типове валидизатори (Types of Validators)

Ако погледнете панел Web Forms на Toolbox, ще видите различни валидизационни контроли. Накратко те са:

· RequiredFieldValidator--Този валидатор (validator) изисква неговото свойство ControlToValidate да има стойност. С други думи, контролът към който е вързан (отляво) не трябва да е празен.

· CompareValidator-- Този валидатор (validator) сравнява стойността въведена от потребителя със стойността, която спесифицирате. Спесифицираната стойност може да е изчислена стойност или стойност от база данни.

· RangeValidator-- Този валидатор (validator) изисква въведената данна да е в конкретна област. Допустимата област може да е числова, данни, валута, или алфабетна.

· RegularExpressionValidator--Регулиращи изрази, известни още като маски (masks). Този валидатор осигурява въведените данни да съвпадат с конкретен формат, като формат за телефонни номера, номера на социални осигуровки и прочие.

· CustomValidator-- Този валидатор използва код, който пишете сами за валидизация на данните.

· ValidationSummary-- Този валидатор просто докладва всички грешки отчетени от другите валидатори.

Прибавяне на много валидатори за едно и също поле

· Възможно е да прибавим повече от един валидатор (validator) към едно и също поле. Примерно може да имате поле Номер Социална осигуровка (Social Security number), което изисква специален формат, значи трябва да прибавим RegularExpressionValidator към формата след валидатор RequiredFieldValidator който сме прибавили първо. За валидатор RegularExpressionValidator, сменете свойство ControlToValidate на TextBox1, и кликнете върху многоточието на свойство ValidateExpression. В диалоговата кутия Regular Expression Editor която се появява, изберете U.S. Social Security Number и кликнете OK. Стартирайте проекта и тествайте:

- Не въвеждайте нищо и кликнете бутона. Появава се RequiredFieldValidator съобщението.

- Въведете Hello в текстовата кутия и натиснете бутона. Не се появява RequiredFieldValidator но се показва RegularExpressionValidator.

- Въведете 111-11-1111 в текстовата кутия и натиснете бутона. Не се появява текст на валидатор и формата прави обиколка до сървъра, защото условията са изпълнени.

Модификация на валидатори

Забелязяхте, че текста на валидаторите не е от най-дружелюбните към клиентите. Но ако кликнете RequiredFieldValidator в Design панела ще намерите в свойствата - ErrorMessage. Сменете това свойство на " This field is required". След това кликнете върху RegularExpressionValidator и сменете неговото свойство ErrorMessage на " SSN must be in ###-##-#### format". Сега стартирайте страницата отново, и повторете същите три теста от предишната точка. Ще получите съобщения във валидаторите за първите два теста, но текста им вече ще е новият, който въведохте в свойство ErrorMessage за всеки валидатор. Ще видите още, че даже и RequiredFieldValidator да не се извежда, RegularExpressionValidator се появява достатъчно далеч. Това е защото валидаторите са извикали свойство Display, а то по подразбиране е Static. Ако смените стойността му на Dynamic за RequiredFieldValidator и стартирате страницата отново, ще видите, че ReqularExpressionValidator сега се появява веднага след текстовата кутия. Стойността Dynamic че полето няма да заема място ако не се визуализира. Това се поддържа от IE 4.0 и по-висока версия, но поддръжка на други браузери няма - възприема се като Static.

Използване на контрол Validation Summary

Възможно е да се маркират сгрешените полета със звездичка и да се проведе сумарна валидизация най-отгоре или най-отдолу на страницата. Контролът ValidationSummary допуска да създадете списък на всички възникнали грешки. За да видите как работи това, трябва да модифицирате UserInfo.aspx малко. Добавете текст "First Name" пред ASP.NET сървър контрол TextBox. Сменете неговото свойство ID на нещо четимо като txtFName. На следващия ред добавете "Last Name", пред ASP.NET сървър контрол TextBox и му дайте подразбиращо се име. Например имената:

- Address 1 - City - Zip

- Address 2 - State - Phone

Добавете RequiredFieldValidator след First Name, Last Name, Address 1, City, State, и Zip. Полета Address 2 и Phone са опционални. След това за текстова кутия Phone, добавете RegularExpressionValidator и определете свойство ValidationExpression в U.S. Phone Number, Вашата форма е 114.



Фигура 114 Формата за стартиране на данни по време на проектиране

Без да въвеждате нищо натиснете бутона. Ще получите фигура 115.


Фигура 115Формата за стартиране на данни с всички съобщения на валидаторите.

Фигура 116 Формата за стартиране на данни с едно съобщение на валидаторите.


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

Както се вижда , това е един начин за показване на грешки. Може и с друг стил, ако използваме контрол ValidationSummary. Довлечете контрол ValidationSummary върху формата и го пуснете над бутона, но след текстова кутия Phone и валидатора.

Маркирайте контрола във формата и сменете свойство HeaderText в "The following errors occurred:" и след това стартирайте формата. Без да въвеждате нищо натиснете бутона. Ще видите съобщение от всеки валидатор до всяка текстова кутия и същите съобщения в списъка на ValidationSummary отдолу на страницата. Ако харесвате сумарния списък с грешки се върнете в дизайнера и за всеки валидатор сменете свойство Text в звездичка (*).Не сменяйте нищо в ValidationSummary. Стартирайте формата. Някои полета са въведени, някои не, а поле Phone е сгрешено. Натиснете бутона.

Нещата изглеждат като на фигура 117. Анализирайте резултатите в поле ValidationSummary.


Фигура117 Контрол ValidationSummary ви позволява да покажете списък на грешките и опционално да маркирате полетата Вие постигнахте функционалност без да пишете код.


Страници: «1 2

Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: Национален Бизнес | Bomba.bg | IT Новини | Диплома.бг | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | Фото Форум | Spodeli.net | Фото-Култ | Atol.bg | Elmaz.com | MobileBulgaria.com | Казанлък.Com