11. marts 2004 - 11:07Der er
12 kommentarer og 1 løsning
hjælp til validering
Jeg skal kontrollere og initialisere en masse datoer når en bruger trykker på en knap, det kommer hurtigt til at se grimt ud i koden med en masse if else sætninger. er der nogen pæn måde at lavet det på.
if(overskrift.Value == "") fejl = "Du skal indtaste en overskrift!";
else if(Editor1.Text == "") fejl = "Du skal indtaste en tekst!";
else{ if(panelTid.Visible) { datoStyring = 1;
try { datoTilTmp = DateTime.Parse(datoFra.Value); datoFraTmp = DateTime.Parse(datoTil.Value); } catch { fejl = "Du har ikke angivet en gyldig til eller fra dato!"; }
if(fejl == null) if(DateTime.Compare(datoTilTmp,datoFraTmp) < 1) fejl = "Fra datoen skal være yngre end til datoen!"; } else { if(aktiv.Checked) aktiveret = 1; }
try { datoTmp = DateTime.Parse(dato.Value); } catch { fejl = "Du har ikke angivet en korrekt dato!"; }
der er sq ikke så meget andet at gøre end en masse conditions... det er jo netop validering, og det er nemlig en masse sammenligninger og if-statements
Jeg tænkte på om man på en eller anden måde kunne hoppe ud når der var sket en fejl, så man ikke hele tiden skulle kontrollere om der var sket en fejl inden man fortsætter. Jeg har overvejet at lave valideringen i en metode, som så kunne retunere når der var fejl. Men så kommer jeg ind i at alle de variabler der skal initialiseres undervejs skal være globale i klassen, og det er måske også lidt træls.
det er da rigtigt, at det koster lidt at kaste en exception.. men i dette tilfælde er det fuldstændig ligegyldigt. Det er mere i kritiske situationer, f.eks. når man tegner på skærmen at man skal passe på.
en anden ting du kunne gøre var at bruge de forskellige Validators der er indbygget i frameworket. På den måde kan du også lave client-side validation før det overhovedet bliver sendt til serveren og gøre brug af Page.IsValid-propertien
Ja det har jeg også overvejet, men jeg har en textbox i bunden af min side, hvor i jeg skriver hvis der er fejl, eller om det er gået godt. og jeg kan vel ikke få de Validatoers i .NET til at skrive i en sådan boks, eller hvad?
hvorfor dog ikke det... ? du bestemmer selv hvor den error-besked skal komme ved at sætte din <asp:*validator> det sted på siden din besked skal komme frem
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.