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 :

Dual Listbox et postback


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 31
    Par défaut Dual Listbox et postback
    Bonjour,

    Un gros problème c'est apparu lors du dévellopement de mon applic.

    J'utilise deux listbox, une contenant des utilisateurs (L1) et une autre vide (L2).

    A l'aide de javascript je fais véhiculer les utilisateurs d'une listbox a l'autre grace a un bouton.

    Le problème est que je n'arrive pas a récupérer le contenu de ma listbox (L2) dans le code-behind, le nombre d'élément vaut toujours 0.

    je n'utilise pas de postback ni d'ajax.

    Comment faire ?

    Utiliser Ajax et effectuer un postback ?


    Merci d'avance.


    Code Javascript


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
                function Deplacer(l1,l2) {
     
    		        if (l1.options.selectedIndex>=0) {
    			        o=new Option(l1.options[l1.options.selectedIndex].text,l1.options[l1.options.selectedIndex].value);
    			        l2.options[l2.options.length]=o;
    			        l1.options[l1.options.selectedIndex]=null;
    		        }
    		        else{
    			        alert("Aucun élément sélectionné");
    		        }
    		    }

    Code 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     <table>
     
                <tr>
                <td>
                    <asp:ListBox ID="ListBox1" runat="server" Width="200px">
                    </asp:ListBox>
                    <cc1:ListSearchExtender ID="ListSearchExtender1" runat="server" TargetControlID="ListBox1">
                    </cc1:ListSearchExtender>
                </td>
     
                <td> 
                    <center>
                        <input id="Button4" type="button" value="Ajouter >>>" onclick="Deplacer(this.form.ctl00_Corps_ListBox1,this.form.ctl00_Corps_ListBox2)" />
                        <br /><br />
                        <input id="Button3" type="button" value="<<< Enlever" onclick="Deplacer(this.form.ctl00_Corps_ListBox2,this.form.ctl00_Corps_ListBox1)" />
                    </center>
                </td>
     
                <td>
                    <asp:ListBox ID="ListBox2" runat="server" Width="200px">
                    </asp:ListBox>
                </td>
     
                </tr>
            </table>
     
     
     
     
        protected void liste_formateur()
        {
            query = "SELECT * FROM vue_formateur WHERE ind_activer=1";
            SqlConnection cnx = (SqlConnection)Session["oConnection"];
     
            try
            {
     
                SqlCommand myCommand = new SqlCommand(query, cnx);
                reader = myCommand.ExecuteReader();
     
                while (reader.Read())
                {
                    ListItem item = new ListItem(reader["ind_nom"].ToString()+" "+reader["ind_prenom"].ToString(),reader["ind_code"].ToString());
                    ListBox1.Items.Add(item);
                }
     
            }
            catch (System.Exception ex)
            {
                Console.WriteLine(ex.Message.ToString());
            }
            finally
            {
                reader.Close();
            }
        }

  2. #2
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonjour,

    Lorsque tu es sur un postBack, tu peux parcourir les éléments de ListBox1 car ces derniers ont été générés par le serveur et existent donc dans le ViewState.

    Pour ta ListBox2, étant donné que tu as dynamiquement ajouté les éléments côté client, tu ne peux récupérer que la valeur choisie par le biais de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     HttpContext.Current.Request.Form['ctl00_Corps_ListBox2']
    Utiliser Ajax et effectuer un postback ?
    Tu pourrais en effet utiliser l'UpdatePanel d'ASP.Net, tu créé un Trigger sur le click du boutton. Cela aura pour effet de lancer l'évenement CallBack (et non PostBack).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(Page.IsCallBack)
    {
        ListBox2.Items.Add(ListBox1.SelectedItem);
        ListBox1.Items.Remove(ListBox1.Selecteditem); // voir si cela ne supprime pas la référence vers l'item ListBox2 dans quel cas il faudra cloner l'item
    }

Discussions similaires

  1. Réalisation d'un composant dual ListBox
    Par stefsas dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/06/2010, 11h06
  2. Réponses: 3
    Dernier message: 28/04/2010, 16h11
  3. ListBox et postback
    Par topolino dans le forum ASP.NET
    Réponses: 10
    Dernier message: 09/10/2009, 11h17
  4. Cherche tutoriel dual listbox avec BDD access
    Par andy38 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 19/06/2008, 15h44
  5. ListBox auto remplissage/postback items vide
    Par Nadjib dans le forum C#
    Réponses: 4
    Dernier message: 15/09/2007, 09h39

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