| ||
English | Slovak |
Menu: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Č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.
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,
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:
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}$";
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:
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 |