Avatar billede nat Nybegynder
10. november 2005 - 11:34 Der er 1 kommentar og
2 løsninger

c# validering på 2 tekstbokse

Hej Eksperter,

Jeg vil gerne lave en validering på 2 tekstbokse, således at det ikke er muligt at skrive en dato i den ene, uden at der også bliver skrevet en dato i den anden. Derudover skal der også tjekkes på at den første dato er tidligere end den anden dato.

Det er ikke et krav at de to tekstbokse skal udfyldes, men hvis de bliver, skal begge udfyldes.
Avatar billede martor Nybegynder
10. november 2005 - 16:25 #1
Hej,

Jeg vil umiddelbart foreslå dig at bruge en række validatorer. For det første, så vil det være smart at have nogle RegularExpressionValidators på til at tjekke for datoernes format.

Dernæst kan du bruge en compareValidator til at tjekke hvorvidt den anden dato er større end den første.

Problemet her er kravet om at de begge skal udfyldes, hvis den ene bliver det OG at de ikke er krævede. Havde de været krævede, kunne du løse det med RequiredFieldValidators. Men, jeg vil foreslå dig at bruge CustomValidators. Du er umiddelbart nød til at bruge 2, da en customValidator kun kan knyttets til én textbox.

Dvs. du laver en CustomValidator til hver textbox og i deres ServerValidate laver et tjek på om begge textboxe er udfyldt. Validatoren bliver kun trigget hvis der er udfyldt noget i textboxen.

Eks.
private void CustomValidator1_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args)
{
    if(TextBox1.Text.Length != 0 && TextBox2.Text.Length == 0)
        args.IsValid = false;
}

Det kan muligvis gøres smartere med noget javascript, men det her burde kunne gøre det...

Håber det hjælper.
Avatar billede nat Nybegynder
10. november 2005 - 17:48 #2
Hvordan tjekker jeg at den ene dato er større end den anden?
Avatar billede martor Nybegynder
10. november 2005 - 18:45 #3
Du skal bruge en CompareValidator, som har en række properties du kan sætte. ControlToCompare (Textbox1), ControlToValidate (Textbox2), Operator (GreaterThan) og Type (Date).

burde gøre det...

mvh
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
Kurser inden for grundlæggende programmering

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