AspNet.sk     Diskusné fóra     Vitajte v QuickStarts     ASP.NET     Silverlight     Ako môžem...? (en)     Class prehliadač Príklady chcem v ...   
Menu
Skip Navigation Links.
Späť na ASP.NET príručku

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
Run Sample View Source

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
Run Sample View Source

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
Run Sample View Source

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
Run Sample View Source

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
Run Sample View Source

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
Run Sample View Source


VB RegularExpressionValidator 2
Run Sample View Source

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
Run Sample View Source

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
Run Sample View Source

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
Run Sample View Source
Microsoft .NET Framework SDK QuickStart Tutorials Version 2.0
Copyright © 2005 Microsoft Corporation. All rights reserved.
Preklad do slovenského jazyka - Copyright © 2005 - 2007 www.aspnet.sk, www.qsh.sk
Pošlite komentár k tejto stránke
Copyright © 2002 - 2008 Chastia, spol. s r. o., Igor Stanek, Designed by Lacino
Portál je hostovaný na serveroch firmy Quantasoft - www.qsh.sk.