Avatar billede c-sharp Nybegynder
11. marts 2004 - 11:07 Der 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å.

eks.

            DateTime datoTmp = DateTime.Now;
            DateTime datoFraTmp = DateTime.Now;
            DateTime datoTilTmp = DateTime.Now;
            string fejl = null;
            int datoStyring = 0;
            int aktiveret = 0;

            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!";
                }

OSV.
Avatar billede burningice Nybegynder
11. marts 2004 - 11:20 #1
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
Avatar billede c-sharp Nybegynder
11. marts 2004 - 11:27 #2
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.
Avatar billede burningice Nybegynder
11. marts 2004 - 11:32 #3
du kan smide det hele ind i en try-catch og bruge throw istedet for at tjekke på din fejl-string hele tiden.

try {
  //alt muligt

  //hvis der sker fejl:
  throw new Exception("Du har ikke angivet en korrekt dato!");
} catch(Exception exc) {
  Response.Write(exc.Message);
}
Avatar billede c-sharp Nybegynder
11. marts 2004 - 11:34 #4
Men det er vel performens mæssigt langsommer end at checke for om fejl er forskellig fra null, eller hvad?
Avatar billede burningice Nybegynder
11. marts 2004 - 11:39 #5
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å.
Avatar billede c-sharp Nybegynder
15. marts 2004 - 10:12 #6
Takker for din hjælp endnu engang.

Smid et svar så er er point!
Avatar billede burningice Nybegynder
15. marts 2004 - 10:21 #7
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
Avatar billede c-sharp Nybegynder
15. marts 2004 - 10:53 #8
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?
Avatar billede burningice Nybegynder
15. marts 2004 - 11:07 #9
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
Avatar billede c-sharp Nybegynder
15. marts 2004 - 11:19 #10
Hvordan kan jeg så skrive i <asp:*validator> når tingende er gået godt?

eks. "Du er nu oprettet som bruger"
Avatar billede burningice Nybegynder
15. marts 2004 - 11:24 #11
der opretter du en <asp:label> som du skriver til på serveren
Avatar billede c-sharp Nybegynder
26. april 2004 - 09:03 #12
Jeg havde helt glem det her spørgsmål, det må du undskylde!

cyberfessor>> smid et svar så er der point!
Avatar billede burningice Nybegynder
26. april 2004 - 09:09 #13
:) havde jeg da også helt.. hehe... svar
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester