[ASP][C#][Javascript]Pbm de récupération d'une valeur selectionnée dans une list [Résolu]

Signaler
Messages postés
4
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
26 avril 2006
-
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
-
Bonjour à tous,
Mon prbleme est assez simple mais ... il doit y avoir un tout petit truc ke j'ai pas vu.
je suis en asp.net/c# avec vwd 2005 express edition

j'ai une listbox comme ainsi :



j'ajoute des elements dans cette liste avec:

protected void Page_Load(object sender, EventArgs e){
if (sortie != null)
{
foreach (String element in sortie)
{
listedegroupe.Items.Add(element);
}
}
}
//"sortie" est la sortie d'une fonction de type Arraylist qui me donne une
//suite d'element à mettre dans ma listbox.

ensuite j'ai un bouton qui qui me permet de supprimer un element:




ce bouton déclanche ce code:

protected void SupButton_Click(object sender, EventArgs e){
Response.Write("HIHI");
if (listedegroupe == null)
Response.Write("LISTE NULL");
else if (listedegroupe.SelectedValue == null)
Response.Write("pas d'élément sélectionné");
else
{
Response.Write("valeur selec " + listedegroupe.SelectedValue);
}
}

et quand je selectionne un element et click sur le bouton supprimer ca m'affiche:

"HIHIvaleur selec "

donc la valeur selectionnée n' a pas été prise en compte par le code. Pourtant mes elements sont visibles dans ma listbox apres chargement de la page.

j'ai essayé aussi

Response.Write("valeur selec " + listedegroupe.SelectedItems.Value);
avec une boucle for qui parcours la liste:
Response.Write("valeur selec " + listedegroupe.Items[i].Selected.ToString();

cela donne le meme resultat. En somme je n'arrive pas à obtenir le champs selectionné.

Une autre question: je voudrais aussi ajouter un controle javascript pour qu'il y ait confirmation avant supression.

j'ai mis ce code:

SupButton.Attributes.Add("onClick", "javascript:if(confirm('Confirmer la
suppression?')== true) return true; else return false;");

la boite de dialogue appareil bien mais je n'arrive pas à recupérer la valeur retournée.

merci d'avance pour votre aide.

12 réponses

Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
et la solution, c'est de faire un test sur le postback de ta page avant d'ajouter les éléments dans ta liste (au lieu de faire un list.Items.Clear qui vide ta liste, y compris l'éléments sélectionné). J'ai testé, ça fonctionne cette fois!!
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
Salut,

enlève le 'OnClick="SupButton_Click"' dans le source de ta page, sinon ta fonction 'SupButton_Click' va s'exécuter 2 fois.

Pour ma part, j'ai essayé (en vb) et le SelectedValue fonctionne...

@+
Messages postés
425
Date d'inscription
mercredi 22 janvier 2003
Statut
Modérateur
Dernière intervention
13 juillet 2007

Bonjour,

Je ne sais pas ce que le "sortie" dans le Page_Load signifie, mais je te conseille te faire un if (!IsPostBack) plutôt, afin d'éviter de replir la liste a chaque exécution de la page.

Bon courage!

<hr>Azra(Florent) - MVS- MCAD.NET
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
Au fait, tu le supprime où ton élément selectionné?

ça résoudra pas non plus ton problème, mais tu devrais tester si c'est un post-back, sinon le contenu de 'sortie' sera ajouté à chaque load de la page....
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
Argggghhhh!!! pas assez rapide!!!
Messages postés
425
Date d'inscription
mercredi 22 janvier 2003
Statut
Modérateur
Dernière intervention
13 juillet 2007

huhu :)


Deux explications valent toujours mieux qu'une :)





<hr>


Azra
(Florent) - MVS- MCAD.NET
Messages postés
4
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
26 avril 2006

bonjour merci pour vos reponses:

voilà ce ke j'ai fait:
protected void Page_Load(object sender, EventArgs e)
{
ArrayList sortie = new ArrayList();
sortie.Add ("coucou1");
sortie .Add ("coucou2");
listedegroupe.Items.Clear();
foreach (String element in sortie)
{
listedegroupe.Items.Add(element);
}
}

ensuite j'ai fait ca:
protected void SupButton_Click(object sender, EventArgs e)
{
Response.Write("HIHI");
if (listedegroupe == null)
{
Response.Write("LISTE NULL");
}
else
{
Response.Write(" " + listedegroupe.SelectedIndex + "
");
if (listedegroupe.SelectedValue == null)
Response.Write("pas d'élément sélectionné");
else
Response.Write("valeur selec " + listedegroupe.SelectedValue);
}
}

cela me donne une reponse:
"HIHI -1
valeur selec"
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
Exact, ça ne marche pas!! En tous cas ça fonctionne avec une DropDownList....
Messages postés
4
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
26 avril 2006

merci bcp, pour vos reponses super rapides:)
ms je suis sur un projet et il me faut des listbox.
le pire c ke je suis sur ke c un tout petit truc...aaaa
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
En fait, c'est parce qu'au click du bouton, le load de la page s'effectue avant le buton_Click!! Donc au chargement de ta page, il n'y a aucune valeur de sélectionnée dans ta liste...
Messages postés
4
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
26 avril 2006

té le meilleur,;)
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
si seulement c'était vrai..... je ne poserai pas de question sur ce forum!!!