|
|
ASP.NET QuickStart Príručka
Validácia vstupných ovládacích prvkov formulárov
Čo je nové vo verzii 2.0
- Validačné skupiny - Môžete priradiť meno skupiny množine validačných prvkov, aby ste zaistili, že ku validácii dôjde len na prvkoch zo zvolenej skupiny. Vlastnosť Vám umožní mať na stránke viac kontrolných skupín, ktoré sú validované osobitne.
- Zameranie na chybu - Použitím novej funkcie Focus API môžete nastaviť validátory, aby zaostrili obraz na ovládací prvok, na ktorom došlo ku chybe vo validácii. Pri odovzdávaní formulára na spracovanie sa zameria prvý ovládací prvok, na ktorom dôjde ku validačnej chybe (dostáva Focus).
- Medzikultúrne invariantné hodnoty - Keď robíte konverziu na silno-typovaných vlastnostiach porovnávacieho validátora (CompareValidator.ValuteToCompare, RangeValidator.MaximumValue, RangeValidator.MinimumValue), validátor použije kultúrne neutrálny formát (Dátum: Rok/Mesiac/Deň a mena:US) na vykonanie konverzie, ak je nastavená hodnota vlastnosti CultureInvariantValues na true.
- Validácia prázdneho textu - Vlastnosť ValidateEmptyText ošetruje problém s CustomValidator. V ASP.NET 1.0 by ku vlastnej validácii nedošlo ak by bol ValidationText prázdny. Môžete nastaviť uvedenú vlastnosť na true aby ste zabezpečili vlastnú validáciu pre prázdne vstupné hodnoty.
Sekcia rozoberá uvedené a aj ďalšie validačné funkcie ASP.NET 2.0.
Knižnica Web Forms zahŕňa množinu validačných serverových ovládacích prvkov, ktoré poskytujú silný, ale jednoducho použiteľný spôsob overenia vstupných formulárov
pred ich odovzdaním a v prípade potreby aj zobrazenie správ používateľovi.
Existuje niekoľko typov validácie, ako kontrola rozsahu, porovnávanie so vzormi, prípadne RequiredFieldValidator, ktorý zaistí,
že používateľ pri vyplňovaní nepreskočí dôležité vstupné pole. Ku vstupnému ovládaciemu prvku môžete pripojiť viac ako jeden validačný prvok.
Na príklad, môžete určiť že hodnota je vyžadovaná a že musí obsahovať určitý rozsah hodnôt.
Validačné ovládacie prvky pracujú s ohraničenou množinou ovládacích prvkov HTML a prvkov servera. Pre každý ovládací
prvok existuje špecifická vlastnosť, ktorá obsahuje validovanú hodnotu. Nasledujúca tabuľka ukazuje zoznam vstupných ovládacích
prvkov, ktoré môžu podliehať validácii.
| Ovládací prvok |
Validovaný prvok |
| HtmlInputText |
Value |
| HtmlTextArea |
Value |
| HtmlSelect |
Value |
| HtmlInputFile |
Value |
| TextBox |
Text |
| ListBox |
SelectedItem.Value |
| DropDownList |
SelectedItem.Value |
| RadioButtonList |
SelectedItem.Value |
| FileUpload |
FileName |
Typy validačných ovládacích prvkov
Najjednoduchšia forma validácie je Required field validácia. Ak používateľ zadá akúkoľvek hodnotu do vstupného poľa, potom je vstup platný.
Ak sú všetky polia na stránke platné, stránka je platná. Ďalšia tabuľka ilustruje použitie RequiredFieldValidator.
VB RequiredFieldValidator
Existujú aj validačné ovládacie prvky pre špecifické formy validácie, akými sú overovanie rozsahu, alebo porovnávanie so vzorom. Ďalšia tabuľka ukazuje zoznam validačných ovládacích prvkov.
| Názov prvku |
Popis |
| RequiredFieldValidator |
Zaistí, že používateľ nevynechá vstup z poľa. |
| CompareValidator |
Porovnáva vstup používateľa s konštantnou hodnotou alebo hodnotou vlastnosti iného ovládacieho prvku použitím porovnávacieho operátora (menší, väčší, rovný...). |
| RangeValidator |
Zisťuje, či je používateľský vstup medzi horným a dolným ohraničením. Rozsah môžete určiť ako pár hodnôt, znakov abecedy, alebo dátumov. Ohraničenia môžu byť vyjadrené ako konštanty. |
| RegularExpressionValidator |
Zisťuje, či sa vstup zhoduje so vzorom, ktorý je určený regulárnym výrazom. Uvedený typ validácie vám umožní kontrolovať predvídateľné sekvencie znakov ako číselné formáty, e-mailové adresy, telefónne čísla, poštové kódy ... |
| CustomValidator |
Validuje vstup od používateľa použitím vlastnej validačnej logiky. Vlastná validácia umožňuje porovnávanie s hodnotami, ktoré sa dajú získať len počas behu programu. |
| ValidationSummary |
Zobrazí validačné chyby pre všetky validátory na stránke vo forme prehľadného súhrnu. |
Validácia na strane klienta
Validačné ovládacie prvky vždy vykonávajú validáciu na strane servera. Ak ale používateľ pracuje
s prehliadačom, ktorý podporuje DHTML, validačné ovládacie prvky môžu vykonať validáciu použitím skriptu na strane klienta.
Počas validácie na strane klienta sú všetky chyby zachytené predtým, ako je formulár odovzdaný na server.
Ak ktorýkoľvek z validátorov oznamuje chybu, odovzdanie formy je odvolané a zobrazí sa hodnota vlastnosti
Text validátora. Používateľ môže v hneď na to opraviť vstup pred jeho odovzdaním na server.
Hodnoty polí sú opätovne validované keď pole stratí focus. Uvedená vlastnosť poskytuje rýchlu
a interaktívnu validáciu, ktorá nie je prerušovaná volaním servera.
Knižnica Web Forms vždy vykonáva validáciu na serveri, aj keď k nej došlo už na strane klienta. Vlastnosť
zabraňuje používateľom obísť validáciu použitím vopred pripravenej transakcie prípadne konaním v zastúpení za iného používateľa.
Validácia na strane klienta je štandardne aktivovaná. Ak ju klient podporuje, vykoná sa automaticky.
Aby ste vyradili validáciu na strane klienta, nastavte vlastnosť ClientTarget objektu stránky na "Downlevel" ("Uplevel" vynucuje validáciu na strane klienta").
Pre ľubovoľný validátor môžete nastaviť vlastnosť EnableClientScript na "false", aby ste vyradili validáciu na strane klienta pre zvolený validačný prvok.
VB Client-side Validation
Zobrazovanie chýb validácie
V čase spracovávania vstupu používateľa (na príklad počas odovzdávania formuláru), knižnica Web Forms odovzdáva
používateľský vstup asociovaným validačným prvkom. Validačné prvky vstup kontrolujú a nastavujú
vlastnosť na indikáciu, či vstup prešiel validačným testom. Po tom, ako všetky validačné ovládacie prvky boli
spracované, je nastavená hodnota vlastnosti IsValid na objekte stránke na true; Ak ktorýkoľvek z prvkov
ohlásil chybu pri validácii, celá stránka je neplatná.
Ak validačný ovládací prvok je v chybovom stave, môže sa na stránke zobraziť chybová správa priamo prostredníctvom validačného prvku,
alebo pomocou prvku ValidationSummary zobrazeného v inej časti stránky. Prvok ValidationSummary sa zobrazí,
keď vlastnosť IsValid na stránke má hodnotu false. Zároveň vyvolá všetky validačné prvky, ktoré ohlásili chybu a agreguje
textové správy každého z nich. Nasledujúci príklad ilustruje zobrazovanie chýb použitím prvku ValidationSummary.
VB Validation Summary
Práca s CompareValidator
Serverový ovládací prvok CompareValidator porovnáva hodnoty dvoch ovládacích prvkov. CompareValidator pri validácii využíva tri základné vlastnosti. ControlToValidate a ControlToCompare
obsahujú porovnávané hodnoty. Operator definuje typ porovnávania, ktoré sa má vykonať, na príklad Equal alebo Not Equal.
CompareValidator vykoná validáciu vyhodnotením vlastností ako výrazu nasledujúcim spôsobom:
( ControlToValidate ControlToCompare )
Ak sa výraz vyhodnotí ako true, validovaná hodnota je platná. Voliteľne môžete určiť vlastnosť ValuteToCompare, aby ste porovnávali oproti statickej hodnote a nie oproti vlastnosti iného ovládacieho prvku (ControlToCompare).
Serverový ovládací prvok CompareValidator môže byť použitý aj pri validácii dátového typu. Napríklad ak
má byť formulárom odovzdaná hodnota dátumu narodenia, môžete použiť prvok CompareValidator aby ste
zaistili, že zadaný dátum má rozpoznaný formát pred jeho odovzdaním do databázy.
Nasledujúci príklad ukazuje použitie prvku CompareValidator.
VB CompareValidator
Práca s RangeValidator
Prvok RangeValidator testuje, či vstupná hodnota spadá do zvoleného rozsahu.
RangeValidator používa tri kľúčové vlastnosti na vykonanie validácie. ControlToValidate obsahuje hodnotu,
ktorá sa má validovať. MinimumValue a MaximumValue definujú hraničné hodnoty platného rozsahu.
Príklad ukazuje ako použiť prvok RangeValidator.
VB RangeValidator
Práca s regulárnymi výrazmi
Serverový ovládací prvok RegularExpressionValidator kontroluje, či je vstup zhodný so vzorom definovaným
regulárnym výrazom. Uvedený typ validácie umožňuje porovnávať s predvídateľnými sekvenciami znakov.
RegularExpressionValidator používa dve kľúčové vlastnosti na vykonávanie validácie. Vlastnosť ControlToValidate obsahuje
hodnotu, ktorá sa validuje. Vlastnosť ValidationExpression obsahuje regulárny výraz, oproti ktorému sa porovnáva.
Príklad ilustruje použitie prvku RegularExpressionValidator.
VB RegularExpressionValidator
VB RegularExpressionValidator 2
Validácia vlastnými prostriedkami
Prvok CustomValidator volá používateľsky definovanú funkciu na vykonanie validácie, ktorú štandardné validátory nedokážu
spracovať. Vlastná funkcia môže byť spustená na serveri alebo ako skript na strane klienta, ako JScript alebo VBScript.
Pre validáciu na strane klienta musí byť určený názov funkcie vlastnosťou ClientValidationFunction.
Vlastná funkcia musí mať tvar:
function myvalidator(source, arguments).
Source je objekt CustomValidator na strane klienta a arguments je objekt s dvomi vlastnosťami,
Value a IsValid. Vlastnosť Value je hodnota, ktorá má byť validovaná a vlastnosť IsValid je Boolean
použitý ako návratová hodnota výsledku validácie.
Pre validáciu na strane servera vložte vlastnú validáciu do delegáta OnServerValidate.
Ďalší príklad ukazuje ako použiť prvok CustomValidator.
VB Custom Validator
ValidateEmptyText New in 2.0
Vlastnosť ValidateEmptyText, ktorá je nová v ASP.NET 2.0 opravuje problémy s CustomValidator. V ASP.NET 1.0 sa vlastná validácia nemohla prebehnúť, ak text vlastnosti ControlToValidate bol prázdny.
Môžete nastaviť hodnotu vlastnosti na true, aby ste aktivovali validáciu pre prázdne vstupné hodnoty.
Validačné skupiny New in 2.0
Vlastnosť ValidationGroup sa používa, keď používateľ chce vykonať oddelené validačné scenáre na tej istej stránke.
Nastavte názov skupiny na validačných prvkoch a na prvku Button prípadne na inom ovládacom prvku, ktorý spôsobí spustenie validácie.
Prístup je užitočný pri prvkoch Wizard, Multiview alebo dátových ovládacích prvkoch (vo fáze editácie).
Štandardne majú všetky validátory nastavenú skupinu "", kvôli spätnej kompatibilite.
Objekt Page vystavuje metódy GetValidators("group") a Validate("group").
Vlastnosť Page.IsValid reflektuje platnosť všetkých ovládacích prvkov, ktoré zavolali metódu Validate.
Príklad nižšie demonštruje vlastnosť ValidationGroup. Kliknite na prvé tlačidlo (Search) na stránke a následne na druhé
tlačidlo. Všimnite si rozdiel v množine validátorov, ktoré sa spustia pri každom kliknutí.
VB Validation Groups
SetFocusOnError New in 2.0
Ďalšia funkcia ASP.NET 2.0 je SetFocusOnError, ktorá sa nastavuje na validačných ovládacích prvkoch, ktorá spôsobí, že prvý neplatný ovládací prvok získa focus.
Pre viac informácii o SetFocusOnError, pozrite článok Focus API v sekcii Tipy and Triky.
Typický validačný formulár
Príklad ukazuje typický registračný formulár použitím variácií validačných ovládacích prvkov rozobraných v článku.
VB Validation Form
|
|