Validator e (Auto)Postback

Non si finisce mai di imparare...

Lo scenario è una pagina web con un textbox e relativo required validator + un pulsante per effettuare il postback, tutti con lo stesso ValidationGroup. Fino a qui nessun problema, tutto funziona correttamente.

Se alla pagina aggiungo una DropDownList con AutoPostBack="true" succede questo:

1. Clicco il pulsante per attivare il validator.

2. Cambio elemento selezionato nella dropdownlist

3. Il postback non avviene a causa dei validatori!!!

4. Cambio di nuovo elemento selezionato nella dropdownlist

5. Il postback avviene correttamente.

Pare che la stessa cosa avvenga anche se clicco su un LinkButton presente nella pagina e su qualsiasi elemento che provoca un postback: al primo click il postback non avviene a causa dei validatori!

Ho guardato su internet delle possibili soluzioni: molti consigliano funzioni lato client ma nessuno mi ha convinto veramente.

Dal Framework 2.0 la DropDownList ha la proprietà CausesValidation. Non serve impostarla a false perchè è il valore di default (ho controllato con il Reflector): il funzionamento non cambia.

La soluzione che ho trovato - e che non è specificata in alcun sito - è stata:

Assegnare alla DropDownList CausesValidation="true" e un ValidationGroup diverso da quello usato dal pulsante.

Brutto ma efficace! In questo modo il postback avviene anche al primo click (o al primo cambio di elemento selezionato della dropdowlist)


Technorati tags:

Print | posted @ martedì 19 luglio 2011 23:31

Comments have been closed on this topic.