[Asp.Net] CustomValidator op CheckBox en SetFocusOnError

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 17:15

Haan

dotnetter

Topicstarter
Ik loop tegen het volgende probleem aan:

Een webformulier bevat vier checkboxes, afhankelijk van wat er elders is ingevuld, moet hier ofwel minstens 1 ofwel maximaal 1 checkbox worden aangevinkt. Dat is prima te realiseren met een CustomValidator.

Maar het probleem met validatie van checkboxes is, is dat een checkbox geen geldig control is voor de ControlToValidate property (wie heeft dat verzonnen :/ ). Hierdoor werkt de validate an sich wel, maar kan je niet de SetFocusOnError property gebruiken, omdat deze kijkt naar de control in ControlToValidate.

Nu springt het formulier dus helemaal naar boven (het is een vrij lang formulier en de checkboxes staan redelijk onderin, layout van het formulier wijzigen is geen optie, dat is vastgelegd door de klant) als de checkboxes niet juist zijn ingevuld.

Ik heb geprobeerd om een onzichtbare dummy textbox er naast te zetten en die te gebruiken als ControlToValidate , maar daar trapte Asp.Net helaas niet in ;)

Heeft iemand toevallig vaker met dit bijltje gehakt en het weten op te lossen?

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • DoDo
  • Registratie: Juli 2001
  • Laatst online: 21:08
Je kan je eigen validator maken door over te erven van BaseValidator. Hier kun je zo alle logica inzetten.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Even over een andere boeg: weet je wel zeker dat je UI-technisch gezien dan wel checkboxes wil gebruiken en geen radiobutton? Want dit klinkt me een beetje teveel naar een gebrekkig UI ontwerp.

[ Voor 21% gewijzigd door RobIII op 20-04-2010 11:01 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Face_-_LeSS
  • Registratie: September 2004
  • Niet online
Je kunt ook een CustomValidator gebruiken zonder de ControlToValidate property op te geven. Dat zorgt er voor dat de validator bij iedere postback wordt gevalideerd.

Acties:
  • 0 Henk 'm!

  • L-VIS
  • Registratie: April 2005
  • Laatst online: 13:57
Haan schreef op dinsdag 20 april 2010 @ 09:57:
Maar het probleem met validatie van checkboxes is, is dat een checkbox geen geldig control is voor de ControlToValidate property (wie heeft dat verzonnen :/ ).
Dat is toch logisch? Hoe moet je een checkbox valideren? Hij is true of false, en als 1 van die twee niet valide is dan is hij automatisch de andere waarde...

Maar moet je niet radiobuttons gebruiken? Dat lijkt me UI technisch ook beter. Ik begrijp dat er altijd 1 moet worden ingevuld?

Edit: Spuit 11

Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 17:15

Haan

dotnetter

Topicstarter
Zoals ik al zei, moet er in het ene geval minstens 1 checkbox, en in het andere geval maximaal 1 checkbox worden aangevinkt. Dit is een functionele eis van de klant en kan ik weinig aan doen. Ik zei ook al dat de validatie zelf wel werkt, maar omdat hij niet aan een control hangt, werkt het zetten van de focus niet.

Een radiobutton gaat dus ook niet werken, omdat er ook meerdere opties geselecteerd moeten kunnen worden.

Ik zal eens kijken naar wat de mogelijkheden zijn van een eigen validator maken.

[ Voor 8% gewijzigd door Haan op 20-04-2010 13:18 ]

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Haan schreef op dinsdag 20 april 2010 @ 13:17:
Zoals ik al zei, moet er in het ene geval minstens 1 checkbox, en in het andere geval maximaal 1 checkbox worden aangevinkt.
Dat was mij iig niet geheel duidelijk:
Haan schreef op dinsdag 20 april 2010 @ 09:57:
Een webformulier bevat vier checkboxes, afhankelijk van wat er elders is ingevuld, moet hier ofwel minstens 1 ofwel maximaal 1 checkbox worden aangevinkt.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 17:15

Haan

dotnetter

Topicstarter
Misschien had ik het wat onduidelijk verwoord, maar het staat er toch wel goed? toch? ;) Minstens 1, dus 1 of meer in de ene situatie, of anders max. 1, dus 0 of 1 aangevinkt.

Anywayz, ik heb het nu maar even een beetje ranzig opgelost door de Validate functie overriden en daarin te bepalen of de checkbox validator IsValid property false is. In dat geval zet ik de focus op een van de checkboxes.

[ Voor 37% gewijzigd door Haan op 20-04-2010 13:44 ]

Kater? Eerst water, de rest komt later

Pagina: 1