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

 .NET Discussion :

Problème avec 2 DropDownList imbriquées


Sujet :

.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 173
    Par défaut Problème avec 2 DropDownList imbriquées
    Bonjour à tous,
    Je souhaite imbriquer deux DropDownList, la première permet de choisir une gamme et en fonction du choix fait dans cette première la deuxième se charge avec les produits de la gamme en question.

    J'ai donc une base de données avec 2 tables : [gamme] et [produits], celles-ci sont en relation et je m'aide pour cela de 2 SqlDataSource que voici:
    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
    <!-- ////////////////////////////SQLDATASOURCE////////////////////////////// -->
            <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
                 ConnectionString="<%$ ConnectionStrings:supportConnectionString %>" 
                 SelectCommand="SELECT * FROM gammes" >
            </asp:SqlDataSource>
     
            <asp:sqldatasource
                id="SqlDataSource3"
                runat="server"
                connectionstring="<%$ ConnectionStrings:supportConnectionString %>"
                selectcommand="SELECT [id_produits], [nom_produits] FROM [produits] WHERE ([gammes_id_gammes] = @gammes_id_gammes)">
     
                <selectparameters>
                    <asp:controlparameter name="gammes_id_gammes" controlid="ddlUsers" 
                        propertyname="SelectedValue" Type="Int32"/>
                </selectparameters> 
            </asp:sqldatasource>
     
    <!-- ////////////////////////////FINSQLDATASOURCE////////////////////////////// -->
    Voici mes DropDownList :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Choisir une gamme
    <asp:DropDownList AutoPostBack="true" ID="ddlUsers" runat="server" DataSourceID="SqlDataSource2" DataValueField="id_gammes" DataTextField="nom_gammes" >
    </asp:DropDownList>
     
    Choisir un produit :
    <asp:dropdownlist id="DropDownList2" runat="server" autopostback="True" DataSourceID="SqlDataSource3">
    </asp:dropdownlist>
    Comme vous vous en doutez cela ne fonctionne pas et à la place de mes produits j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Data.DataRowView
    qui se charge en plusieurs fois.

    Merci par avance pour vos contributions.
    A+

  2. #2
    Membre expérimenté Avatar de AJemni
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2008
    Messages : 242
    Par défaut
    Essay de charger la "DropDownList2" apres l'evennement SelectedIndexChanged de la "ddlUsers".

  3. #3
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 173
    Par défaut
    Merci pour ta réponse, mais je suis vraiment débutant.
    Peut-tu me dire comment faire pour charger la "DropDownList2" après l'événement SelectedIndexChanged.

    Merci pour ta compréhension

  4. #4
    Membre expérimenté Avatar de AJemni
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2008
    Messages : 242
    Par défaut
    Une idée est de charger d’abord le premier ddl par la sqlDataSource mais pour la 2eme ddl tu récupère la valeur de la première, ainsi séléctionné et puis tu lance la requête :
    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
     
    protected void ddlUsers_SelectedIndexChanged(object sender, EventArgs e)
        {
            DataTable dt = null;
     
            dt = ListerModeleMobile(ddlUsers.SelectedValue);
            if (dt != null && dt.Rows.Count != 0)
            {
                DropDownList2.DataSource = dt; //Definir la Source de données de votre ddl
                DropDownList2.DataValueField = "id_produits"; //Definir la Valeur
                DropDownList2.DataTextField = "nom_produits"; // 
                DropDownList2.DataBind();
            }
            else DropDownList2.Enabled = false;
     
        }
     
        private DataTable ListerModeleMobile(string ddlUsersSelectedValue)
        {
            string strSql = string.Empty;
            DataTable dt = new DataTable();
            using (SqlConnection cnDataBase = new SqlConnection(ConfigurationManager.ConnectionStrings["supportConnectionString "]))
            {
                cnDataBase.Open();
                strSql = string.Concat("SELECT [id_produits], [nom_produits] FROM [produits] WHERE gammes_id_gammes = '",ddlUsersSelectedValue,"'");
                SqlCommand cmTable = new SqlCommand(strSql, cnDataBase);
                SqlDataAdapter daTable = new SqlDataAdapter(cmTable);
                daTable.Fill(dt);
            }
            return dt;
        }
    s'il y à une autre PB n'hésite pas

  5. #5
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 173
    Par défaut Solution sans code-behind
    Voici la solution sans code-behind

    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
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                            ConnectionString="<%$ ConnectionStrings:supportConnectionString %>" 
                            SelectCommand="SELECT [id_gammes], [nom_gammes] FROM [gammes]"></asp:SqlDataSource>
                        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                        <ContentTemplate>
                        <asp:DropDownList AutoPostBack="true" SelectedIndexChanged="ddlUsers_SelectedIndexChanged" ID="ddlGamme" 
                            runat="server" DataSourceID="SqlDataSource1" DataValueField="id_gammes" 
                            DataTextField="nom_gammes" ValidationGroup="search" >
    		               <asp:ListItem Selected="True">-------- Choisir une gamme--------</asp:ListItem> 
    		            </asp:DropDownList>
    		            </ContentTemplate>
                        </asp:UpdatePanel>
     
    <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
                                    ConnectionString="<%$ ConnectionStrings:supportConnectionString %>" 
                                    SelectCommand="SELECT [id_produits], [nom_produits] FROM [produits] WHERE ([gammes_id_gammes] = @gammes_id_gammes)">
                                    <SelectParameters>
                                        <asp:ControlParameter ControlID="ddlGamme" Name="gammes_id_gammes" 
                                            PropertyName="SelectedValue" Type="Int32" />
                                    </SelectParameters>
                                </asp:SqlDataSource>
                        <asp:UpdatePanel ID="UpdatePanel2" runat="server">
                               <ContentTemplate>
     
                                    <asp:dropdownlist id="ddlProduit" runat="server" 
                                        DataSourceID="SqlDataSource2" AutoPostBack="True" DataTextField="nom_produits" 
                                        DataValueField="id_produits" ValidationGroup="search" >
     
                                    </asp:dropdownlist>
                                </ContentTemplate>
                                <Triggers>
                                    <asp:AsyncPostBackTrigger ControlID="ddlGamme" />
                                </Triggers>
                        </asp:UpdatePanel>
    Merci à tous pour votre aide.

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

Discussions similaires

  1. [AC-2007] Problème avec des requêtes imbriquées
    Par triaguae dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 15/02/2011, 15h43
  2. Problème avec le dropdownlist
    Par doudou_ca dans le forum ASP.NET
    Réponses: 2
    Dernier message: 03/11/2009, 10h45
  3. Problème avec des requète imbriquée dans le from
    Par Stouille33 dans le forum Développement
    Réponses: 5
    Dernier message: 23/10/2008, 20h17
  4. Petit problème avec une DropDownList
    Par Dohmaker dans le forum VB.NET
    Réponses: 6
    Dernier message: 20/09/2007, 19h19
  5. problème avec une requête imbriquée
    Par jaimepasteevy dans le forum Langage SQL
    Réponses: 13
    Dernier message: 05/12/2003, 11h29

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