Jeg har lavet en validering på en masse TextBox felter med den indbyggede ErrorProvider control. Jeg har så en knap, der submitter alle disse data til en sql database, men er det muligt kun at gøre knappen aktiv, såfremt at der ikke er nogen indtastingsfejl?
private void CheckErrors() { string[] textboxes = new string[] { "textbox1", "textbox2" }; string s = ""; foreach( string str in textboxes ) { s = errorProvider1.GetError( Controls[str] ); if( s != "" ) { button1.Enabled = false; return; } button1.Enabled = true; } }
Synes godt om
Slettet bruger
21. maj 2008 - 21:55#3
Tak for svaret, har fået det til at virke, men kan se at det alligevel ikke var helt gennemtænkt af mig. For når man har skrevet rigtigt i textbox1, og sætter cursoren i textbox2, så er button1 aktiv.
Dvs. at button1, skal ikke være aktiv, såfremt at:
1) Der er fejl i form af ErrorProvider. 2) Hvis der er tomme textbox felter
Hvis din knap er disabled som default vil mit kode virke som du forspørger
Synes godt om
Slettet bruger
21. maj 2008 - 22:39#5
Det fungerer nogenlunde efter hensigten. Problemet med ErrorProvider'en er tilsyneladende, at den kun validerer når man trykker hen i et andet textbox felt.
Dvs. hvis man f.eks. laver en fejl i den sidste tekstbox og dernæst retter den, så bliver man nødt til at trykke hen i en anden textbox før knappen bliver aktiv...
private bool CheckErrors() { string[] textboxes = new string[] { "textbox1", "textbox2" }; string s = ""; foreach( string str in textboxes ) { s = errorProvider1.GetError( Controls[str] ); if( s != "" ) { return false; } return true; } }
Synes godt om
Slettet bruger
21. maj 2008 - 23:09#7
Først så det her ud til at virke rigtig godt, men (ja, jeg er ked af det) hvis man kun indtaster det korrekte i textbox1, så vil knappen virke. Det skulle den helst ikke, da der intet står i textbox2.
Jeg vil både tjekke for tomme textboxes og tjekke for errors via ErrorProvider.
Den sidste kodestump tjekker kun for tomme textboxes, og ikke om der er fejl. Jeg er ikke interesseret i at smide data ind i min database, som ikke overholder de kriterier jeg har fastsat med ErrorProvideren.
Synes godt om
Ny brugerNybegynder
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.