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 :

comment lier un DDL à un gridview


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 71
    Par défaut comment lier un DDL à un gridview
    Bonjour!
    Le tutoriel suivant http://msdn.microsoft.com/fr-fr/library/bb469855.aspx répond parfaitement à ce que je désire faire mais j'ai une option que j'aimerai ajouter à ceci et je ne sais trop comment m'y prendre. En effet, j'aimerai qu'en cliquant par exemple sur la dernière DDL(ici categories) que toutes les informations puissent s'afficher dans un Gridview crée à cet effet.
    Merci d'avance!

  2. #2
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 274
    Par défaut
    Bonjour,

    A première vue tu dois utiliser l'évènement SelectedIndexChanged de ta DDlist pour délancher la mise à jour de ton gridview.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 220
    Par défaut
    Citation Envoyé par rohstev Voir le message
    Bonjour,

    A première vue tu dois utiliser l'évènement SelectedIndexChanged de ta DDlist pour délancher la mise à jour de ton gridview.
    Sans oublier de mettre la propriété AutoPostBack de ta DDL à True

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 71
    Par défaut
    Voici mon code:
    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
    <asp:SqlDataSource ID="SqlDataEtudiant" runat="server" 
            ConnectionString="<%$ ConnectionStrings:BDGISConnectionString %>" 
            SelectCommand="SELECT [Id_Cycle], [Id_Filiere] FROM [Etudiants]"></asp:SqlDataSource>
        <asp:FormView ID="FormView1" runat="server" DataSourceID="SqlDataEtudiant">
     
     
            <ItemTemplate>
                Cycle:
     
                <asp:SqlDataSource ID="SqlDataCycle" runat="server" 
                    ConnectionString="<%$ ConnectionStrings:BDGISConnectionString %>" 
                    SelectCommand="SELECT * FROM [Cycles]"></asp:SqlDataSource>
                <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" 
                    DataSourceID="SqlDataCycle" DataTextField="Libelle_Cycle" 
                    DataValueField="Id_Cycle" SelectedValue='<%# Bind("Id_Cycle") %>'>
                </asp:DropDownList>
                <asp:SqlDataSource ID="SqlDataFiliere" runat="server" 
                    ConnectionString="<%$ ConnectionStrings:BDGISConnectionString %>" 
                    SelectCommand="SELECT * FROM [Filieres] WHERE ([Id_Cycle] = @Id_Cycle)">
                    <SelectParameters>
                        <asp:ControlParameter ControlID="DropDownList1" Name="Id_Cycle" 
                            PropertyName="SelectedValue" Type="Int32" />
                    </SelectParameters>
                </asp:SqlDataSource>
                <br />
                Filiere:
     
                <asp:DropDownList ID="DropDownList2" runat="server" 
                    DataSourceID="SqlDataFiliere" DataTextField="Libelle_Filiere" 
                    DataValueField="Id_Filiere" AutoPostBack="True" 
                    onselectedindexchanged="DropDownList2_SelectedIndexChanged">
                </asp:DropDownList>
                <br />
            </ItemTemplate>
     
        </asp:FormView>
        <asp:GridView ID="GridView1" runat="server">
        </asp:GridView>
    Comme vous pouvez le voir, mon DDL est dans un formview et cela me complique un peu la tâche au moment de la liaison des données car je n'accède pas directement au control de ma DDL.
    comment je dois procéder, je suis dos au mur à ce stade.
    merci d'avance pour votre aide!

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 76
    Par défaut
    Bonjour,

    Il faudrait déjà mapper ta GridView sur ton SQLdataSource (celui qui prend un SelectParameter et qui est lui bindé sur le SelectedValue de ta ddl)

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 71
    Par défaut
    comment on procède? et qu'en sera t-il de l'évènement selectedIndexChanged que l'on m'a conseillé précédemment

  7. #7
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par beaudelaire Voir le message
    comment on procède? et qu'en sera t-il de l'évènement selectedIndexChanged que l'on m'a conseillé précédemment
    L'évènement OnSelectedIndexChanged te permet de gérer le changement de valeur du DropDownList. Le fait de mettre la valeur AutoPostback du DropDownList à "true" va déclencher un Postback dès qu'une nouvelle valeur sera sélectionnée.

    Lors de ce Postback, la méthode associée à l'évènement OnSelectedIndexChanged (le handler) sera appelée, et le code qu'elle contient sera exécuté.

    Voici un exemple générique :

    La DropDownList :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <asp:DropDownList ID="DDL1" runat="server" OnSelectedIndexChanged="DDL1_SelectedIndexChanged" />
    Le code behind :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    protected void DDL1_SelectedIndexChanged(object sender, EventArgs e)
    {
         // Code à exécuter
    }

    Voici ce que tu as à faire :
    1. Créer un nouveau SqlDataSource qui servira à remplir ton GridView (ne pas oublier de lier ce SqlDataSource au GridView grâce à l'attribut 'DataSourceID').
    2. Vérifier que ce SqlDataSource peut être filtré en fonction de la valeur de ta DropDownList.
    3. Indiquer dans ta DropDownList le nom de la méthode qui va se déclencher lors de l'évènement SelectedIndexChanged (comme l'exemple générique ci-dessus)
    4. Dans le code behind, créer la méthode qui porte le même nom que celui que tu as spécifié au point précédent (#2), un peu comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    protected void DDL1_SelectedIndexChanged(object sender, EventArgs e)
    {
         // La méthode DataBind() va déclencher une nouvelle exécution du SqlDataSource, et donc la mise à jour des données de ton GridView.
         // /!\ Attention à bien vérifier que le SqlDataSource est bien filtré en fonction de la valeur de ta DropDownList !
         MonGridView.DataBind();
    }
    Si tu n'arrives pas à faire en sorte que le SqlDataSource lié à ton GridView puisse être filtré par ta DropDownList, voici un lien qui te sera fort utile : http://www.eggheadcafe.com/tutorials...-filterin.aspx
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  8. #8
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 71
    Par défaut
    ce que je n'arrive pas à faire est justement de Vérifier que mon SqlDataSource peut être filtré en fonction de la valeur de ta DropDownList.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <asp:SqlDataSource ID="SqlDataFiliere" runat="server" 
                    ConnectionString="<%$ ConnectionStrings:BDGISConnectionString %>" 
                    SelectCommand="SELECT * FROM [Filieres] WHERE ([Id_Cycle] = @Id_Cycle)">
                    <SelectParameters>
                        <asp:ControlParameter ControlID="DropDownList1" Name="Id_Cycle" 
                            PropertyName="SelectedValue" Type="Int32" />
                    </SelectParameters>
                </asp:SqlDataSource>
    cela pourrait se faire comme ceci sauf que pour mon cas, la gridview et le fromview sont des controles à part; ce qui fait que je n'arrive pas à avoir accès au DDL qui se trouve dans le formview afin de parametrer mon SqlDataSource. Quelqu'un a t-il une idée?
    merci d'avance!

  9. #9
    Membre émérite Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Par défaut
    Salut,
    la gridview et le fromview sont des controles à part;
    c'est à dire? Tu n'est pas sur une même page Web?

  10. #10
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 71
    Par défaut
    voilà ce que je veux dire: lorsqu'on paramètre le SqlDataSource au moment de spécifier le controlID de ce dernier, au lieu d'avoir la DDL en question car c'est sur ce dernier qu'on éffectuera le filtre pour récupérer la valeur souhaiter. Or dans le menu qui s'affiche je n'ai pas le détails des controls DDL de mon fromview; je n'obtiens que le formview en question portant je voudrai pouvoir avoir accès à mes controls DDL. c'est de ça que je parle car si je parviens à passer cette étape, je n'aurai plus de soucis.
    j'espère que je me suis fais bien comprendre maintenant.
    merci d'avance pour votre aide!

Discussions similaires

  1. Réponses: 0
    Dernier message: 26/09/2009, 03h04
  2. comment lier un detailsview à un gridview?
    Par perloutta dans le forum ASP.NET
    Réponses: 8
    Dernier message: 15/03/2009, 11h46
  3. Réponses: 5
    Dernier message: 06/08/2007, 17h43
  4. Réponses: 3
    Dernier message: 24/08/2006, 23h24
  5. comment lier deux tables?????
    Par baboune dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 16/03/2004, 14h45

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