Problème avec une DropDownList et son evenement SelectedIndexChanged [Résolu]

chris56100 3 Messages postés vendredi 26 octobre 2007Date d'inscription 25 juin 2008 Dernière intervention - 25 juin 2008 à 12:12 - Dernière réponse : ggtry 417 Messages postés vendredi 13 juin 2008Date d'inscription 21 juillet 2010 Dernière intervention
- 26 nov. 2008 à 11:46
Bonjour a tous,

J'ai un peu souci (de débutant je pense et j'assume ^^), je n'arrive pas a récupérer une valeur dans une liste déroulante :

Quand j'initialise et je rempli ma liste déroulante par un dataset (en cliquant sur un bouton), pas de problème la liste déroulante est bien remplie, mais il faut que je crée un bouton pour récupérer la valeur affiché !

bout de code qui marche:
protected void Button1_Click(object sender, EventArgs e)
        {
            Label5.Text = MaListe.SelectedItem.Text.ToString();
        }

Je voudrais pouvoir affiché la valuer séléctionné par l'utilisateur sans qu'il est a cliqué sur un bouton selectionné, c'est pour cela que j'utilise l'evenement "SelectedIndexChanged", mais cela ne marche pas...

bout de code qui ne marche pas :
protected void MaListe_SelectedIndexChanged(object sender, EventArgs e)

        {

            Label5.Text = MaListe.SelectedItem.Text.ToString();

        }

Someone ?
Afficher la suite 

10 réponses

Répondre au sujet
ggtry 417 Messages postés vendredi 13 juin 2008Date d'inscription 21 juillet 2010 Dernière intervention - 25 juin 2008 à 12:43
+3
Utile
Bonjour,

Tu n'as sans doute pas activé AutoPostBack sur ta liste.

GGtry
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ggtry
chris56100 3 Messages postés vendredi 26 octobre 2007Date d'inscription 25 juin 2008 Dernière intervention - 25 juin 2008 à 12:52
0
Utile
wahh ! Merci pour la rapidité de la réponse et surtout de la pertinence de la réponse !! A quoi sert en 2 mot ce fameux AutoPostBack ? Est-il conseillé de l'activé sur tout mes controles ?

Merci beaucoup
Commenter la réponse de chris56100
ggtry 417 Messages postés vendredi 13 juin 2008Date d'inscription 21 juillet 2010 Dernière intervention - 25 juin 2008 à 13:12
0
Utile
Rebonjour,

Le postback envoie la page au serveur et la retourne au client. Ainsi, le code lié à un événement comme selectedindexchanged n'est interprété que côté serveur, lors du postback.
Un bouton asp effectue toujours un postback : c'est pourquoi dans ton cas, le label était mis à jour après avoir cliqué sur le bouton.
Autopostback permet simplement de faire le postback sans appuyer sur un bouton, quand l'utilisateur change quelque chose au contrôle.
Il n'est utile de le mettre à 'true' pour un contrôle que si tu veux que la page soit mise à jour d'après la modification apportée par l'utilisateur, sans passer par un bouton d'envoi.
Suppose par exemple qu'il y ait trois listes déroulantes différentes sur la même page et que l'utilisateur doive choisir un élément dans chaque liste pour afficher une réponse. Si tu mets Autopostback à "true" sur les trois listes déroulantes, à chaque fois que l'utilisateur fera un choix dans une liste, la modification sera envoyée au serveur. Comme l'utilisateur, dans ce cas, n'a pas encore fait son choix dans les deux autres listes, la réponse du serveur ne tiendra compte que de la modification dans la première liste et des éléments affichés par défaut dans les deux autres.
Dans ce cas, il vaut mieux ne pas mettre autopostback à true et utiliser un bouton pour envoyer le formulaire après que l'utilisateur ait fait son choix.
Donc, pour ta question : cela dépend toujours de ce que tu veux faire.

Cordialement,

GGtry
Commenter la réponse de ggtry
chris56100 3 Messages postés vendredi 26 octobre 2007Date d'inscription 25 juin 2008 Dernière intervention - 25 juin 2008 à 13:21
0
Utile
Tout est clair ! Merci beaucoup encore une fois !!! :)
Commenter la réponse de chris56100
cs_habibdu70 25 Messages postés jeudi 24 avril 2003Date d'inscription 26 novembre 2008 Dernière intervention - 25 nov. 2008 à 17:15
0
Utile
OK, bonjour merci,

mais moi j'ai un autre problème que je ne comprend pas du tout,

J'ai liée à ma dropdownlist un datasource.

et lorsque que je selectionne un champ, l'event OnTextChange ou IndexChange n'est pas apeller.

c'est lorsque j'appuie sur un bouton submit, que l'event est appelé. en plus (en mode debug) la valeur du dropdownlist est vide ("").

pouvez vous m'aider ?

merci
Commenter la réponse de cs_habibdu70
ggtry 417 Messages postés vendredi 13 juin 2008Date d'inscription 21 juillet 2010 Dernière intervention - 25 nov. 2008 à 18:44
0
Utile
Bonjour,

A priori, ça ressemble pourtant au même problème.
Es-tu sûr d'avoir  AutoPostBack="true" sur ta dropdownlist, par exemple :
 
 
?
Pour la valeur de la dropdownlist, elle sera vide au premier chargement, mais en principe pas après la sélection et le postback.
En tout cas, si tout marche correctement lorsque tu utilises un button, c'est probablement seulement que tu n'as mis Autopostback à true comme indiqué ci-dessus.
Sinon, si cela ne marche pas malgré cela, montre un bout de code.

(ps. en repostant sur un sujet qui date un peu, tu risques de ne pas obtenir de réponse. Quand tu ne trouves pas de réponse dans le forum, tu devrais plutôt ouvrir un nouveau post)

Cordialement,

GGtry
Commenter la réponse de ggtry
cs_habibdu70 25 Messages postés jeudi 24 avril 2003Date d'inscription 26 novembre 2008 Dernière intervention - 26 nov. 2008 à 11:08
0
Utile
Wais, avec l'autopostback, je rentre bien dans l'evenement indexchanged, mais lorsque je regarde la valeur du text, j'ai toujour "".

je comprend pas.
Commenter la réponse de cs_habibdu70
cs_habibdu70 25 Messages postés jeudi 24 avril 2003Date d'inscription 26 novembre 2008 Dernière intervention - 26 nov. 2008 à 11:34
0
Utile
J'ai trouvé, merci,

en fait je charger un dataset dans onLoad de la page. et avec l'autopostback, le dataset était de nouveau charger.

bref, erreur de débutant désolé. (je suis surtout window form).

c'est cool
Commenter la réponse de cs_habibdu70
ggtry 417 Messages postés vendredi 13 juin 2008Date d'inscription 21 juillet 2010 Dernière intervention - 26 nov. 2008 à 11:45
0
Utile
Bonjour,

Il faudrait que tu montres comment tu fais, notamment pour remplir ta dropdownlist.
Une possibilité : fais-tu un databind pour ta dropdownlist, par exemple lors de l'Init ? Si oui, le problème pourrait venir de là.
Sinon, montre ton code.

GGtry
Commenter la réponse de ggtry
ggtry 417 Messages postés vendredi 13 juin 2008Date d'inscription 21 juillet 2010 Dernière intervention - 26 nov. 2008 à 11:46
0
Utile
ps. j'ai envoyé mon précédent message après avoir lu le tien. content que ça marche.

GGtry
Commenter la réponse de ggtry

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.