Články o Px Frameworku:
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.
Pri automatickej validácii, a to kontrole dĺžky reťazca, nemusí validácia fungovať celkom správne.
Závisí to od toho, aká kódová stránka je nastavená v databáze. Ak v databáze používate kódovú stránku
s UTF8, tak v databáze Oracle znaky s diakritikou zaberajú 2 znaky a niektoré špeciálne znaky až 3 znaky v databáze.
Preto musíte nastaviť property CharacterCode komponenty PxWebQuery na hodnotu "UTF8", aby správne fungovala
validácia dĺžky reťazca. V ďalšom ponúkame výpis konštánt property CharacterCode, pre správnu funkcionalitu
validácie dĺžky reťazca. V property CharacterCode je defaultne nastavená hodnota ASCII.
P.č. | Konštanta CharacterCode
|
1. | ASCII
|
2. | UTF8
|
3. | UTF16
|
4. | UTF32
|
5. | UTF7
|
Pokiaľ máme v databáze nastavenú kódovú stránku s UTF8, mali by sme to nastaviť
do property CharacterCode pred otvorením komponenty PxWebQuery. Viac príklad dole:
wquAdresar.CharacterCode = "UTF8";
Okrem automatickej validácie, môžeme ešte definovať na komponente PxWebQuery, ďalšie
doplnkové validácie, ktoré sa definujú cez parameter AddParamValidation.
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:
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.
Nie je zmyslom, tejto časti webu dopodrobna popisovať prácu s komponentami PxFrameworku, podrobný popis komponent
najdete v manuali, ktorý si môžete stiahnuť tu:
Download manual pre Px Framework
Definícia príkazu AddParamValidation:
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
Popis jednotlivých typov validácie:
Typ validácie(sEnumValidationTest) | Popis
|
vtIsNotNull | Pri tomto type je testované, či bola zadaná nejaká hodnota, ak nie, bude vrátená chybová správa "Nezadali ste hodnotu !!!"
|
vtValidToEmail | Pri tomto type je testované, či bola zadaná valídna, správna emailova adresa
|
vtValidToMaxNumber | Pri tomto type je testované, či bolo zadané menšie číslo ako bolo definované v premennej iMinMaxValue, ak nie vráti chybovú správu
|
vtValidToMinNumber | Pri tomto type je testované, či bolo zadané väčšie číslo ako bolo definované v premennej iMinMaxValue, ak nie vráti chybovú správu
|
vtValidToPSC | Pri tomto type je testované, či bolo zadané správne poštové smerové číslo, ak nie vráti chybovú správu
|
vtValidToRegularExpression | Pri tomto type je testované, či zadaná hodnota spĺňa zadaný regulárny výraz, ak nie vráti chybovú správu
|
vtValidToString | Pri tomto type je testované, či bolo zadaný čisto len reťazec zložený z písmen, ak nie vráti chybovú správu
|
vtValidToTelefon | Pri tomto type je testované, či bolo zadané validné telefónne číslo, ak nie vráti chybovú správu
|
vtValidToURL | Pri tomto type je testované, či bola zadaná valídna hodnota URL, ak nie vráti chybovú správu
|
vtValidToCurrency | Pri tomto type je testované, či bolo zadané validné číslo typu currency, ak nie vráti chybovú správu
|
vtValidToNumber | Pri tomto type je testované, či bolo zadané validné, správne celé číslo, ak nie vráti chybovú správu
|
vtValidToFloat | Pri tomto type je testované, či bolo zadané validné, správne reálne číslo, ak nie vráti chybovú správu
|
vtValidToDateTime | Pri tomto type je testované, či bol zadaný správny dátum, ak nie vráti chybovú správu
|
vtValidToLengthString | Pri tomto type je testovaná dĺžka reťazca z hodnotou v premennej iMinMaxValue, ak dĺžka reťazca je väčšia ako dĺžka v premennej iMinMaxValue vráti chybovú správu
|
vtIsUnique | pri tomto type je testované, či zadaná hodnota je unikátna, jedinečná(Unique) pre ten daný stĺpec
|
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:
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:
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.
Tu nájdete funkčný príklad validácie, kontroly zadaných hodnôt prostredníctvom komponenty PxWebQuery, aj so zdrojovými kódmi.
Tento funkčný príklad na tomto webe, beží pod databázou MySQL 5.0.
Ďalšie články o Px Frameworku:
- PxWebQuery - komponenta pre prácu s databázou Oracle, MS SQL, MySQL, FireBird, Interbase
- PxSuperGrid - komponenta pre priame zobrazenie dát v tabuľke
- PxEdit - komponenta, ktorá slúži na editáciu dát, obdoba komponenty TextBox
- PxComboBox - komponenta, ktorá slúži na výber dát zo zoznamu, obdoba komponenty DropDownList
- PxCheckBox - komponenta, ktorá slúži na zaškrtnutie (select / unselect) hodnoty
- PxDbNavigator - komponenta pre prácu z komponentov PxWebQuery, posúvanie kurzora riadku a pod.
- PxJSDatePicker - komponenta pre zadanie dátumu, postavená na JavaScripte
- PxFlyComboBox - séria comboboxov, zapojených za sebou, vhodný pre prácu zo štruktúrovanými dátami (napr. výber kategórii a podkategórii)
- PxGreatRepeater - komponenta pre zadávanie dát, ktoré sa svojou štruktúrou opakujú, maximálny počet hodnôt je limitovaný
- PxChart - komponenta pre zobrazenie a prácu s grafmi
- PxFilterView - vizuálna komponenta pre filtrovanie obsahu dát tabuľky v komponente PxWebQuery
- PxUploader - komponenta na nahrávanie binárnych a textových súborov na server
- PxDbPopUp - komponenta pre načítanie dát z komponenty PxWebQuery a ich zobrazenie a výber v prehľadnej tabuľke
- PxCheckBoxList - komponenta pre zobrazenie a výber hodnôt zo zoznamu
- PxRadioButtonList - komponenta pre zobrazenie a výber hodnoty zo zoznamu
- PxLogin - komponenta pre autorizáciu a prihlásenie sa do aplikácie
- PxSpeedButton - varianta tlačítka s obrázkom a textom
- Načítanie dát z databázy Oracle, MS SQL, MySQL, FireBird, Interbase pomocou komponenty PxWebQuery
- Programové vkladanie nového riadku do databázy pomocou komponenty PxWebQuery
- Načítanie hodnôt z komponenty PxWebQuery cez cyklus while
- Vyhľadávanie riadku v komponente PxWebQuery, podľa zadanej hodnoty a názvu stĺpca v ktorom sa má vyhľadávať
- Procedúra ReOpen komponenty PxWebQuery a znovu načítanie dát do komponenty PxWebQuery
- Udalosti (Eventy) komponenty PxWebQuery
- Vytvorenie nového dynamického stĺpca(field) v tabuľke komponenty PxWebQuery
- Validácia, kontrola zadaných hodnôt prostredníctvom komponenty PxWebQuery a ostatných vizuálnych komponent(PxEdit, PxComboBox a atď.)
- Nastavenie jazykovej mutácie Px Frameworku
- Zistenie aktuálnej verzie Px Frameworku
Nie je zmyslom, tejto časti webu dopodrobna popisovať prácu s komponentami PxFrameworku, podrobný popis komponent
najdete v manuali, ktorý si môžete stiahnuť tu:
Download manual pre Px Framework