Obsah fóra www.proxima-soft.sk www.proxima-soft.sk
Px Framework - ASP.NET komponenty pre rýchly vývoj databázových aplikácii
 
 FAQFAQ   HľadaťHľadať   Zoznam užívateľovZoznam užívateľov   Užívateľské skupinyUžívateľské skupiny   RegistráciaRegistrácia 
 NastaveniaNastavenia   Súkromné správySúkromné správy   PrihláseniePrihlásenie 
Ako validovat dáta prostredníctvom PxEdit?

 
Pridať novú tému   Zaslať odpoveď    Obsah fóra www.proxima-soft.sk -> PxEdit - komponenta pre editáciu dát
Zobrazi predchádzajúcu tému :: Zobrazi nasledujúcu tému  
Autor Správa
Juraj Z.



Založený: streda, 26 januára 2011, 00:00
Príspevky: 17
Bydlisko: www.superinfo.sk

Príspevok Zaslal: streda, 26 januára 2011, 09:37    Predmet: Ako validovat dáta prostredníctvom PxEdit?

Ako validovať dáta prostredníctvom komponenty PxEdit?
Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu
admin



Založený: štvrtok, 17 júna 2010, 00:00
Príspevky: 49
Bydlisko: Fatranská 1, B.Bystrica

Príspevok Zaslal: streda, 26 januára 2011, 09:49    Predmet: Validácia, kontrola zadaných hodnot...

Validácia, kontrola zadaných hodnôt prostredníctvom komponenty PxWebQuery a ostatných vizuálnych komponent(PxEdit, PxComboBox a atď.)

Komponenta PxWebQuery prostredníctvom komponenty PxEdit(ale aj PxComboBox, PxFlyComboBox, PxJSDatePicker a pod.) obsahuje automatickú validáciu. Ak stĺpec tabuľky, ktorý je pripojený na komponentu PxEdit je typu string, je automaticky prevádzaná validácia dĺžky reťazca, ak je typu int, validuje sa či bolo zadané celé číslo, ak je typu date, validuje sa či bol zadaný validný dátum a pod.
Na obrázku je príklad, kde sme zadali reťazec, ktorý svojou dĺžkou presahoval dĺžku reťazca stanoveného v databáze. Ďalej sme zadali dátum, ktorý nebol validný. Prepojením komponenty PxWebQuery a PxEdit sa vytvára automatická validácia. Ak zadaná hodnota v komponente PxEdit nekorešponduje z daným typom, neprejde cez automatickú validáciu, je automaticky zastavené ukladanie dát, a za komponentu PxEdit, je vypísaná chybová správa, prečo nedošlo ku uloženiu dát.



Okrem automatickej validácie, môžeme ešte definovať na komponente PxWebQuery, ďalšie doplnkové validácie, ktoré sa definujú cez parameter AddParamValidation.

kód:
wquAdresar.AddParamValidation("name", "vtIsNotNull"); 


V tomto prípade, pokiaľ nebude vyplnená položka "Meno Osoby", tak nedôjde ku uloženiu dát, a pri stlačení tlačítka "Ok", zostaneme v pôvodnom formulári, a za komponentu "Meno Osoby" nám vypíše chybovú hlášku. Viac na obrázku dole:



Podobne ak na stĺpec právnej formy, tiež uvalíme parameter validácie s typom validácie "vtIsNotNull", pri stlačení tlačítka "Ok", zostaneme v pôvodnom formuláry pokiaľ, nevybereme nejakú hodnotu zo zoznamu "Právnej formy". Príkaz na zadanie parametra validácie pre právnu formu bude vyzerať nasledovne:

kód:
wquAdresar.AddParamValidation("idpravnaforma", "vtIsNotNull"); 


Ak z comboboxu nevybereme žiadnu právnu formu, tak pri ukladaní dát, cez tlačítko "Ok", ostaneme v pôvodnom formulári, a červenými písmenami bude zobrazená príčina prečo nedošlo ku uloženiu formulára, viac obrázok dole.



Definícia príkazu AddParamValidation:

kód:
public void AddParamValidation(string sFieldName, string sEnumValidationTest,
            string sRegularExpression, Int32 iMinMaxValue, string sErrorMsg)

public void AddParamValidation(string sFieldName, string sEnumValidationTest,
            Int32 iMinMaxValue)

public void AddParamValidation(string sFieldName, string sEnumValidationTest)


Popis parametrov príkazu AddParamValidation:

sFieldName - názov, meno fieldu, stĺpca na ktorý sa má uvaliť daný typ validácie
sEnumValidationTest - typ validácie, kontroly, ktorá sa má vykonať, popis jednotlivých typov, bude uvedený ďalej
sRegularExpression - výraz pre zadanie validácie cez regulárne výrazy
iMinMaxValue - minimálna, maximálna hodnota výrazu, pri zadanom type fieldu typu integer
sErrorMsg - cez tento výraz, môžeme pri danom type validácie prepísať, alebo zadať novú chybovú správu



Každý typ validácie, má pevne pridelenú chybovú spravu. Ak by sme chceli túto chybovú spravu zmeniť, ak nám nevyhovuje jej doslovné znenie, môžeme to urobiť nasledujúcim spôsobom:

kód:
wquAdresar.AddParamValidation("name", "vtIsNotNull", "", 0, "Nezadali ste meno osoby !!!"); 


Ďalej si uvedieme príklad validácie cez regulárne výrazy.
Nie je obsahom, tejto knihy popisovať prácu z regulárnymi výrazmi, a to ako sa zostavujú, tu Vás môžeme odkázať len na početné zdroje na internete.

Tabuľku adresár sme rozšírili o ďalší stĺpec, a to o stĺpec na zadávanie PSČ.
Do súboru Adresar.aspx.cs, si validáciu prostredníctvom regulárneho výrazu zadefinujeme nasledovne:

kód:
string sRegVyrazToPSC = @"^\d{5}$|^\d{3}\s\d{2}$";
wquAdresar.AddParamValidation("psc", "vtValidToRegularExpression", sRegVyrazToPSC, 0, "Nezadali ste platné poštové smerovacie číslo !!!");


Zadefinovaný regulárny výraz nám umožní zadať 5 miestne číslo, a to buď z medzerou po 3 čísle, alebo bez medzery. Vždy keď chceme validovať cez regulárny výraz, musíme zadať typ validácie "vtValidToRegularExpresion". Ak sme si takto zadefinovali validáciu pre položku PSČ, tak pri nesprávnom zadaní PSČ, sa formulár neuloží, a zastaví sa jeho ukladanie. Za komponentou PSČ nám vráti chybovú správu, ktorú sme si zadefinovali vo výraze "ErrorMsg", viac obrázok.

Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu
Pridať novú tému   Zaslať odpoveď    Obsah fóra www.proxima-soft.sk -> PxEdit - komponenta pre editáciu dát Časy uvádzané v GMT + 1 hodina