IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Vidoir / Dévidoir qui ne se vide pas


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 34
    Par défaut Vidoir / Dévidoir qui ne se vide pas
    Bonjour,

    Je bosse actuellement sur une page asp.net ou je doit intégrer un controle de type vidoir / dévidoir.

    pour cela j'ai donc 2 listbox avec 2 boutons pour ajouter ou supprimer dans le listbox. Le tout étant inclu dans un updatePanel.

    Seulement mon soucis est que je passe bien dans l'event 'add', mais l'item n'est jamais à selected=true.

    Ca doit pas être grand chose a résoudre mais cela m'echape.

    ASP.NET
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <!-- div pour gestion des destinataires des résultats analytiques -->
                                <div style="float: left; border-right: 2px solid #FF7E28; width: 510px;">
                                    <asp:ListBox ID="lbDestinatairesRsAna" SelectionMode="Multiple" runat="server" Width="300px"
                                        Rows="4" />
                                </div>
                                <div style="float: left; margin: 9px;">
                                    <asp:Button ID="btnAddDestinataire" OnClick="btnAddDestinataire_OnClick" runat="server"
                                        Text="<" ToolTip="Ajouter le destinataire sélectionné" /><br />
                                    <asp:Button ID="btnRemoveDestinataire" OnClientClick="btnRemoveDestinataire_OnClick" OnClick="btnRemoveDestinataire_OnClick" Text=">"
                                        runat="server" ToolTip="Supprimer le destinataire sélectionné" />
                                </div>
                                <div style="float: left;">
                                    <asp:ListBox ID="lbDestinatairesDisponibles" SelectionMode="Multiple" runat="server"
                                        Width="300px" Rows="4" />
                                </div>
                                <!-- <fin de div> -->
    C# (Je vous met qu'un seul des évènements)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    protected void btnAddDestinataire_OnClick(object sender, EventArgs e)
            {
     
                foreach (ListItem item in lbDestinatairesDisponibles.Items)
                {
                    if (item.Selected) //N'est jamais a 'Selected'
                    {
                        ListItem li = lbDestinatairesRsAna.Items.FindByValue(item.Value);
                        if (li == null)
                        {
                            lbDestinatairesRsAna.Items.Add(item);
                            item.Selected = false;
                        }
                    }
                }
            }
    Merci d'avance et bonne journée

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Par défaut
    Salut,

    ne passes t il jamais dans if (item.Selected) ou dans if (li == null) ? un break point t'en dira davantage.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 34
    Par défaut
    Salut, en fait il passe jamais dans le

    if(item.Selected), il reste tjrs a False !

  4. #4
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Bonjour Cedric,

    Je déjà rencontré ce type de problème, à savoir perdre la sélection côté serveur des ListBox qui sont dans un UpdatePanel. J'avoue ne pas avoir cherché plus loin ce jour là et ai placé un bout de javascript pour palier à ce problème.

    Donc si tu es dans l'urgence tu peux faire quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <input type="hidden" name="hiddenfield" id="hiddenfield" runat="server" />
     
    <script>
    //Save selectedIndex of  ListBox on hiddenField
    function postback(elem) {document.getElementById("ctl00_ContentPlaceHolderLeft_hiddenfield").setAttribute("value",elem[elem.selectedIndex].value,null);}
    </script>
     
    <asp:ListBox ID="lstPublic" runat="server" onchange="postback(this);" />
    Maintenant, l'idéal est de creuser un peu plus ce problème et de trouver un solution correcte. As-tu essayé de mettre un Trigger sur l'UpdatePanel (en mode Conditionnal). Cela ne résoudra pas ton problème, mais permettra de voir si avec un Trigger, la propriété Selected est renseignée ou pas.

    En espérant t'avoir aidé.

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Par défaut
    ton code semble simple pourtant. as tu regardé la collection lbDestinatairesDisponibles.Items pour savoir si elle contient bien des éléments ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 34
    Par défaut
    Merci pour vos différentes réponse, je vais tenter de mettre en place ce que propose Nicolas Esprit.

    Sinon oui en ce mettant en mode pas a pas, je vois bien mes items a chaque tour de boucle, ils sont en mode Enabled mais jamais en mode Selected, je vous tient au courant, mais on a pas mal de soucis sur notre projet avec l'update panel.

    Merci

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 34
    Par défaut
    Bon j'ai regardé, la solution proposée avec Js va me permettre de me sortir rapidement du soucis, je met donc résolu car cela permet d'avancer tout en esperant trouver une solution plus 'propre' un jour.

    Bonne journée et @ bientot !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Lignes vides qui ne le sont pas
    Par Sobas dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 19/12/2011, 22h46
  2. session qui ne se vide pas
    Par sam01 dans le forum Langage
    Réponses: 1
    Dernier message: 16/03/2011, 05h58
  3. Buffer qui ne se vide pas
    Par maniaco_jazz dans le forum Administration
    Réponses: 1
    Dernier message: 08/08/2009, 15h08
  4. Champ BLOB qui ne se vide pas.
    Par pifou02 dans le forum Firebird
    Réponses: 4
    Dernier message: 05/10/2007, 10h02
  5. Réponses: 3
    Dernier message: 02/05/2006, 14h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo