[C#2.0] DropDownList - La valeur n'est pas reconnue par .NET
Salut
Je cherche pour quelle raison un DropDownList ne me renverrait pas la valeur sélectionnée pendant un PostBack.
Mais tout d'abbord, mise en situation :D
J'ai un DropDownList peuplé avec une liste d'activités (ddl_activite), et une autre, peuplée par une liste d'indicateurs dépendant de l'activité sélectionnée (ddl_indicateur).
ddl_indicateur est peuplé dynamiquement par du Javascript en fonction de ce qui a été sélectionné dans ddl_activite (la page dérive de ICallBackEventHandler, et c'est le GetCallbackResult qui s'occupe de générer le javascript qui va peupler ddl_indicateur)
Dans GetCallbackResult j'ai bien mis
Code:
ClientScript.RegisterForEventValidation(ddl_indicateur.UniqueID, cur_row["INDICATEUR_ID"].ToString());
où cur_row est un DataRow contenant la liste des indicateurs valides pour l'activité sélectionnée (et bien entendu, cur_row["INDICATEUR_ID"] est la valeur de l'option affichée)
Tout fonctionne bien, sauf que quand je valide mon formulaire, j'ai ddl_indicateur.SelectedValue == "170" alors que j'ai Request.Form["ddl_indicateur"] == "129"
J'ai vérifié, je ne réinitialise pas mon ddl_indicateur dans le Page_Load (comme je faisait beaucoup en démarrant en .NET) vu que l'initialisation générale est protégée par un
Code:
1 2
| if(!IsPostBack)
load(); |
(sachant que j'appelle toujours load() ma fonction d'initialisation de la page, je sais c'est pas super, mais j'ai pris l'habitude maintenant :oops:)
J'ai vérifié au debugger, mon ddl_indicateur_SelectedIndexChanged est bien appelé avant mon btn_valider_Click (sachant que ddl_indicateur_SelectedIndexChanged est vide, c'était juste pour vérifier que cet événement était appelé avant le traitement du bouton)
Est ce que cette dernière phrase me permet d'affirmer que la valeur "censée être" sélectionnée dans le ddl_indicateur est bien la valeur que j'ai d'affichée dans mon navigateur ? (Je veut dire, .NET a terminé le changement de valeur du ddl_indicateur). Je dis ca, parce que j'ai lu je ne sais plus où que l'ordre dans lequel sont appelés les événements n'est pas certain, donc j'ai controlé avec les moyens du bord.
Aurais-je oublié quelque chose ? (La question est bête car oui, j'ai manifestement oublié quelque chose :D)
PS : Veuillez prendre conscience que tout ce post est écrit dans un langage que je ne pratique pas en ce moment derrière mon écran... (Ce dernier ressemblant plus à
Citation:
ù*$ù*ù de DropDownList de ù*$ù*!:!**$* !!! pourquoi ta ^ù*$^m: de valeur est pas la bonne ù$$*ù: de $ù:ù*
avec la censure adéquate