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

C# Discussion :

ListView + DropDownList


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 284
    Par défaut ListView + DropDownList
    Bonjour à tous,

    J'aimerais savoir comment on fait pour remplir une liste déroulante via code-behind que l'on a placé dans la balise InsertItemTemplate d'une ListView.

    En fait, j'aimerais que lors de l'affichage de mon formulaire d'insertion, affiché les éléments de ma collection dans ma DropDownList. Pour le moment j'ai juste une DropDownList vide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <InsertItemTemplate>
                    ...
                   <asp:DropDownList ID="ddlIntervenant" runat="server"></asp:DropDownList>
                    ...
    </InsertItemTemplate>
    J'ai cherché mais j'ai surtout trouvé des forums parlant de récupérer la valeur de cette DropDownList or moi je cherche à la remplir avant ^^ ?

    J'ai tenté de la remplir à l'événement OnLoad de ma ListView en la récupérant via un FindControl mais en vain.

    Quelqu'un aurait-il une solution ?

    Merci d'avance.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    il faut mettre une SqlDataSource (ou autre composant DataSource), et associer ton dropdownlist à cette DataSource via la propriété DataSourceID
    Il faut aussi définir:
    - DataTextField : le champ de la source de données à afficher (le libellé)
    - DataValueField : le champ de la source de données utilisé comme valeur (l'identifiant)

  3. #3
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 284
    Par défaut
    Merci pour l'aide.

    Mais à quel moment dans le code-behind dois-je mettre cela ? Dans le ListView_DataBound ? ListView_Load ? etc...

    Et sinon, pour faire cela, il faut que je puisse récupérer la ddl qui est dans la balise insertItemTemplate non?

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par cnguyen Voir le message
    Mais à quel moment dans le code-behind dois-je mettre cela ? Dans le ListView_DataBound ? ListView_Load ? etc...

    Et sinon, pour faire cela, il faut que je puisse récupérer la ddl qui est dans la balise insertItemTemplate non?
    Pourquoi veux-tu le faire dans le code-behind ? c'est beaucoup plus simple de le faire dans le code aspx...
    Si tu tiens à le faire en code-behind, le Page_Load ou ListView_Load s'y prêtent bien. Pour récupérer la ddl, utilise ListView1.FindControl

  5. #5
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 284
    Par défaut
    Je veux le faire en code behind car ma source de données est une Collection comportant mes contacts LDAP que je récupère en code behind. je veux donc binder le contenu de ma collection à ma DropDownList de ma ListView dans l'élément InsertItemTemplate.

  6. #6
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 284
    Par défaut
    J'ai donc essayé de passer par le code behind au niveau de l'événement Load de la ListView:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
            protected void ListViewNewPDJ_Load(object sender, EventArgs e)
            {
                string m;
                IList<User> p = UsersAccess.GetListUser(null, out m);
     
                DropDownList ddl = (DropDownList)(ListViewNewPDJ.InsertItem.FindControl("ddlIntervenant"));
                if (ddl != null)
                {
                    ddl.DataSource = p;
                    ddl.DataTextField = "Nom";
                    ddl.DataValueField = "Prenom";
                }
            }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <asp:ListView ID="ListViewNewPDJ" runat="server" onLoad="ListViewNewPDJ_Load">
    ...
    <InsertItemTemplate>
    ....
    <asp:DropDownList ID="ddlIntervenant" runat="server" ></asp:DropDownList>
    ...
    Cependant, je me heurte au message d'erreur suivant :
    La référence d'objet n'est pas définie à une instance d'un objet.

    Une idée ? J'ai l'impression qu'il ne trouve pas ma DDL ?

    J'ai essayé de faire :
    (ListViewNewPDJ.InsertItem.FindControl("ddlIntervenant"));
    ou
    (ListViewNewPDJ.FindControl("ddlIntervenant"));
    Mais rien n'y fait...

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

Discussions similaires

  1. [Débutant] Dropdownlist dans listview
    Par he-gauth dans le forum ASP.NET
    Réponses: 2
    Dernier message: 07/11/2013, 15h48
  2. Réponses: 2
    Dernier message: 05/05/2009, 11h08
  3. dropdownlist dans un EditItemTemplate d'une listview
    Par acbdev dans le forum ASP.NET
    Réponses: 1
    Dernier message: 15/12/2008, 15h51
  4. ListView DropDownList et problème de databinding
    Par neo.51 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 15/04/2008, 17h17
  5. ListView
    Par SnickeursMan dans le forum Composants VCL
    Réponses: 2
    Dernier message: 14/08/2002, 10h42

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