Udvidet brug af valideringskontroller
skrevet af Christian H. Nielsen
Ligesom med alle andre kontroller ender man hurtigt med gerne at ville de eksisterende valideringskontroller i .NET - det er dog lidt spidsfindigt i forhold til andre kontroller.
Et scenarie som jeg stødte på for nylig var at jeg gerne ville have et sted at samle valideringslogik. Jeg ville gerne undgå at sprede regularexpressions ud på forskellige sider, som så alle skal opdateres hvis logikken skal ændres.
Udover at samle logikken ville jeg også gerne undgå at skulle bruge to kontroller for at sikre at et felt er udfyldt og lave valideringen.
Efter at have undersøgt forskellige muligheder kom jeg frem til at man har to anbefalelsesværdige muligheder hvis man vil lave egne valideringskontroller:
Enten kan man extende BaseValidator - en god idé derfra kan være at bruge reflector til at disassemble de eksisterende kontroller, og så sin validering fra bunden ud fra samme principper.
Ellers er et godt tip at extende CustomValidator, da den giver mulighed for at lave validering client- og serverside henholdsvis ved at håndtere et event, og ved at angive en JavaScriptfunktion. På den måde kan man meget let lade sin extendede kontrol generere noget JavaScript, og implementere noget serverside validering. Derudover indeholder CustomValidator mulighed for at angive om der skal valideres hvis et felt er tomt, så på den måde kan man let styre om et felt er påkrævet.
Ved at lave en extended validaringskontrol kan man f.eks. samle sine RegularExpressions i en resource file (.resx) og så lave en property på kontrollen hvor man kan sætte hvilken expression der skal bruges. Kontrollen kan så selv generere JavaScript og håndtere valideringen både client- og serverside. På den måde er det langt nemmere at opdatere hvordan eksempelvis en email valideres, da det blot kræver en ændring i en resource file.
Etiketter: Controls, Validering
0 kommentarer |