J'ai cherché pendant quelques jours maintenant mais je n'ai pas trouvé de solution. Voici donc mon scénario:Utilisation de la valeur d'un DropDownList dans un GridView lors de l'insertion d'une nouvelle entrée
J'ai un DetailView avec une DataBindung à une base de données et DefaultMode réglé sur "Insert" comme une entrée-formulaire pour une nouvelle entrée db. Un champ dans cette DetailsView est un TemplateField avec un InsertItemTemplate contenant un DropDownList. Cette DropDownList est également liée à une autre SqlDataSource, en utilisant un "UserID" de paramètre select pour obtenir toutes les lignes d'une base de données pour l'utilisateur connecté. Ces lignes sont affichées dans mon DropDownList et lorsque je regarde le code source dans mon navigateur, je vois la bonne "option" -attributs avec tous ces db-ID dans leur valeur correspondante. Donc tout va bien pour le moment.
Maintenant, j'appuie sur le bouton Insert pour renvoyer mes données au serveur. Mais lorsque j'essaie d'obtenir la valeur sélectionnée de mon DropDownList dans DetailsView1_ItemInserting() avec le code suivant, j'obtiens une valeur nulle.
var list = (DropDownList)DetailsView1.Rows[0].FindControl("DropDownList1");
InsertEntryDataSource.InsertParameters["DropDownList1Value"].DefaultValue = list.Items[list.SelectedIndex].Value;
Le même code fonctionne avec un autre formulaire que j'ai créé dans ce projet. La seule différence est que l'autre DropDownList est liée à un DataSource sans un paramètre select que je dois définir lors de l'exécution (l'ID utilisateur actuellement connecté).
Ma reprise a été que DropDownList est vide après la publication car la liaison de données n'a pas encore été effectuée. J'ai donc défini le paramètre select pour le SqlDataSource auquel mon DropDownList est lié dans DetailsView1_ItemInserting() - et maintenant la ligne ci-dessus a ma valeur.
MAIS: Je viens de tester la forme et une autre fois je déterminé, que quelle que soit l'entrée que je sélectionne dans mon DropDownList, je reçois toujours la valeur de la première entrée! Toute la procédure semble effacer mon SelectedIndex du DropDownList - donc maintenant j'ai une valeur à insérer au lieu de null, mais c'est la mauvaise. :-(
Ma question: Comment puis-je accéder à la valeur sélectionnée de mon DropDownList dans DetailsView1_ItemInserting() pour enregistrer dans la base de données
Merci à l'avance, Anheledir