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 :

DropDownList et GridView


Sujet :

ASP.NET

  1. #1
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 32
    Par défaut DropDownList et GridView
    Bonjour à tous...

    Voila je suis entrain de développer une application en ASP C# avec accès à une base de données SQL Server et je rencontre un petit soucis.

    Voila en fait, j'ai plusieurs DropDownList, et selon ce que je sélectionne dans les DropDownList, cela me renvoie un résultat dans un GridView...

    Tout marchait très bien jusqu'à ce que je mette un en-tête dans mes listes déroulantes via un AppendDataBoundItems="true" dans la définition de mes DropDownList dans la partie ASP et ListItem monItem = new ListItem("Mon en-tête : "); maDropDownList.Items.Add(monItem); dans la partie C#. Maintenant lorsque je sélectionne ce que je veux dans mes DropDownList, mon GridView ne s'affiche pas...

    Il faut savoir que lorsque ça marchait, avant que je mette des en-tête dans ma DropDownList, j'avais contourné le problème en mettant ces fameux en-tête, directement dans chacune des tables de ma base de donnée...
    Mais bon c'était en attendant que j'avance un peu plus sur mon application...

  2. #2
    Membre chevronné Avatar de Redouane
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    435
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 435
    Par défaut
    Comment tu renvois tes résultats au GridView ?, est ce que tu travaille avec l'évenement OnSelectedIndexChanged du DropDownlist.
    est ce que t'a mets AutoPostBack="true" dans les membres du DropDownList comme t'a fais avec AppendDataBoundItems?

  3. #3
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 32
    Par défaut
    Ah... Est-ce encore toi qui va régler mon problème?? lol

    Voila comment je charge mon GridView :
    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
    <asp:SqlDataSource ID="dgvDataRecherche" runat="server" ConnectionString="<%$ ConnectionStrings:Cnx_DossIndiv %>"
                SelectCommand="SELECT [societe], [unite], [groupeAgence], [agence], [categorie], [matricule], [nom_prenom], [TypeDocument] 
                               FROM [TABLEAU] 
                               WHERE (([societe] = @societe) 
                               OR ([unite] = @unite) 
                               OR ([groupeAgence] = @groupeAgence)
                               OR ([agence] = @agence) 
                               OR ([categorie] = @categorie) 
                               OR ([matricule] = @matricule) 
                               OR ([nom_prenom] = @nom_prenom) 
                               OR ([TypeDocument] = @TypeDocument))">            
                <SelectParameters>
                    <asp:ControlParameter ControlID="listSociete" Name="societe" PropertyName="SelectedValue" 
                        Type="String" />
                    <asp:ControlParameter ControlID="listUnite" Name="unite" PropertyName="SelectedValue"
                        Type="String" />
                    <asp:ControlParameter ControlID="listGroupeAgence" Name="groupeAgence" PropertyName="SelectedValue"
                        Type="String" />
                    <asp:ControlParameter ControlID="listAgence" Name="agence" PropertyName="SelectedValue"
                        Type="String" />
                    <asp:ControlParameter ControlID="listCategorie" Name="categorie" PropertyName="SelectedValue"
                        Type="String" />
                    <asp:ControlParameter ControlID="txtMatricule" Name="matricule" PropertyName="Text"
                        Type="String" />
                    <asp:ControlParameter ControlID="txtNomPrenom" Name="nom_prenom" PropertyName="Text"
                        Type="String" />
                    <asp:ControlParameter ControlID="listTypeDocument" Name="TypeDocument" PropertyName="SelectedValue"
                        Type="String" />
                </SelectParameters>
    Et non, je n'utilise pas de OnSelectedIndexChanged dans mes dropDownList.
    Et c'est dans le Load que je mets mes en-têtes dans les DropDownList...

  4. #4
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 32
    Par défaut
    Voila comment je charge une DropDownList...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <!-- Déclaration de la liste déroulante Société -->
                    <asp:DropDownList ID="listSociete" runat="server" DataSourceID="dataSociete"
                                      AppendDataBoundItems="true" 
                                      DataTextField="societe" DataValueField="societe" Width="350px">
                    </asp:DropDownList>
                    <asp:SqlDataSource ID="dataSociete" runat="server" ConnectionString="<%$ ConnectionStrings:Cnx_DossIndiv %>"
                        SelectCommand="SELECT [societe] 
                                       FROM [SOCIETE]">
                    </asp:SqlDataSource>
    Je m'y prends mal?

  5. #5
    Membre chevronné Avatar de Redouane
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    435
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 435
    Par défaut
    Salut,

    il me semble que ton code est correct, essaye de mettre tes en-tetes à la page aspx :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <asp:DropDownList ID="listSociete" runat="server" DataSourceID="dataSociete"
                                      AppendDataBoundItems="true" 
                                      DataTextField="societe" DataValueField="societe" Width="350px">
    <asp:ListItem Value="0">Mon en-tête : </asp:ListItem>
    </asp:DropDownList>


    et enleve le du code behind (c#).

    NB : désolé j'ai pas pu testé dans mon local, environement où je travaille me permets pas

  6. #6
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 32
    Par défaut
    Pas de soucis, pour le faite que tu (je me permets de te tutoyer) n'es pas testé...

    Et bien même en faisant ce que tu m'as dit... Ca ne fonctionne pas...
    Mon GridView ne s'affiche toujours pas...

    C'est quand même bizarre que le fait que les en-tête soit en static pose problème, alors que lorsque je les avait mis en dynamique dans chacune de mes tables ça fonctionnait très bien! Je ne vois pas ce que ça change au niveau de la sélection de mes valeurs dans mes DropDownList, vue qu'elles, elles sont bien en dynamique, en fait... (je sais pas trop si j'emploie les bons mots)

  7. #7
    Membre chevronné Avatar de Redouane
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    435
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 435
    Par défaut
    lorsque tu sélectionne un élement de ton dropdownlist, est ce que la page ça se rafraichi ou pas, est ce que t'a mets AutoPostBack="true" dans tes dorpdownlist ?

    je vois que tu cherche avec des textes et pas des 'values' dans certains dropdownlist.
    et pour bien récupérer des données, essaye de faire dans le 'Value' du dropdown, des identificateurs (ID_Societe par exemple) au lieu des texts, ci mieux dans des requettes de selectionne comme les tiennes

  8. #8
    Membre chevronné Avatar de Redouane
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    435
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 435
    Par défaut
    je ne sais pas quoi te dire,
    j'ai fais un exemple (mais avec une base de données oracle), et ça marche pour moi.
    de tt façon, je te donne un exemple du code que j'ai fais (en fait, j'ai fais juste 1 DropDownList qui a comme élements
    des contrats dont le Text ci Contrat et le Value ci : Contrat ID. et une GridView qui affiche des souscriptions dépendant de l'id Contrat):

    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
    <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource1"
                DataTextField="LBL_CONTRAT" DataValueField="ID_CONTRAT" AutoPostBack="true" AppendDataBoundItems="true">
                <asp:ListItem Value="0">-- Select --</asp:ListItem>
            </asp:DropDownList><asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
                ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand='SELECT "ID_CONTRAT", "LBL_CONTRAT" FROM "CONTRAT"'>
            </asp:SqlDataSource>
            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID_SOUSCRIPTION"
                DataSourceID="SqlDataSource2">
                <Columns>
                    <asp:BoundField DataField="ID_SOUSCRIPTION" HeaderText="SOUSCRIPTION" ReadOnly="True"
                        SortExpression="ID_SOUSCRIPTION" />
                    <asp:BoundField DataField="LBL_SOUSCRIPTION" HeaderText="SOUSCRIPTION"
                        SortExpression="LBL_SOUSCRIPTION" />
                    <asp:BoundField DataField="ID_CONTRAT" HeaderText="ID_CONTRAT" SortExpression="ID_CONTRAT" />
                </Columns>
            </asp:GridView>
            <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
                ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand='SELECT "ID_SOUSCRIPTION", "LBL_SOUSCRIPTION", "ID_CONTRAT" FROM "SOUSCRIPTION" WHERE ("ID_CONTRAT" = :ID_CONTRAT)'>
                <SelectParameters>
                    <asp:ControlParameter ControlID="DropDownList1" Name="ID_CONTRAT" PropertyName="SelectedValue"
                        Type="Decimal" />
                </SelectParameters>
            </asp:SqlDataSource>
    J'espère que tu vas trouver qlq chose qui va t'aider dans ce petit bout de code

  9. #9
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 32
    Par défaut
    Je te redirais ça...
    Parce qu'en fait dans une de mes page ASP, j'ai le même principe mais qu'avec une seule DropDownList... Et ça fonctionne... Mon GridView affiche bien ce que je lui demande.
    Vu que pour la page ou j'ai le problème, j'ai plusieurs DropDownList, j'ai bien peur que finalement, ça soit peut être ma requête qui ne corresponde plus...
    Le problème c'est que je ne vois pas quelle requête adapter pour l'instant. lol

  10. #10
    Membre chevronné Avatar de Redouane
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    435
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 435
    Par défaut
    Si on vois ta requette, et on vois le code que t'a fais au debut (sans les en_tetes).
    Alors si tu sélectionne dans ce cas un élement d'un dropdownlist, sois sûr que tu récupère aussi des valeurs (non vide et non null),
    pour des autres dropdownlist et dans ce cas, ta requette retourne tj des données :

    SELECT [societe], [unite], ...
    FROM [TABLEAU]
    WHERE ([societe] = 'Valeur Sélectionnée par défaut en absence des en-tetes'
    OR [unite] = 'Valeur que t'a sélectionné')

    cette requette va afficher tj des données sauf si societe (que t'a selectionné), unité (que t'a selectionné) et tt les autres n'existent pas dans la base de données.

    Mais en ajoutant des en_tetes (avec leurs Values, null par défaut), t'aura comme requette, par exemple :

    SELECT [societe], [unite], ...
    FROM [TABLEAU]
    WHERE ([societe] is null --( ou bien = '')
    OR [unite] = 'Valeur que t'a sélectionné')

    Cette dernière va te retourner juste les unités s'il en existe, sinon, il va te retourner 0 lignes.
    Donc, je pense que ton code avec les en-tetes marche bien, et même t'a requette j pense que ci bon.
    Essaye de tester ta requette directement dans ta base de données (Editeur de SQL) avec des valeurs possibles dans ton cas.

    Peut etre que t'a déjà résoulu le problème, et que le fait de ne pas afficher le GridView, ça ve dire qu'il n y a pas de données qui répondent
    à tes critéres que t'a sélectionné, donc qui ne répondent pas à la requette qui a été généré.

  11. #11
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 32
    Par défaut
    Je cherche encore un peu, mais ça m'interresse ce que tu dis... lol
    Je ne suis pas contrainte de sélectionner des valeurs dans mes DropDownList...
    Donc ça doit effectivement être le cas ou c'est null que je dois gérer... Je n'y avais pas pensé...

  12. #12
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 32
    Par défaut
    Bon et bien je sais maintenant que c'était bien ma requête qui était fausse...
    Il se trouve que pour faire ma requête, je suis obligée de passer par le code C# pour remplir mon GridView...

    Voila ce que je fais :
    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    string requete;
            string message = "Problème lors de la connexion";
            SqlConnection connexion = new SqlConnection("Data Source=STQY-589\\SQLEXPRESS; Initial Catalog=DossIndiv;Integrated Security=True");
            SqlDataReader reader;
            try
            {
                if (connexion.State == ConnectionState.Closed)
                {
                     connexion.Open();
                }
                if (listSociete.SelectedValue == "entete")
                {
                     requete = "SELECT * FROM TABLEAU WHERE societe = '' ";
                }
                else
                {
                     requete = "SELECT * FROM TABLEAU WHERE societe = '" + listSociete.SelectedValue + "' ";
                }
                if (listUnite.SelectedValue == "entete")
                {
                     requete = string.Concat(requete, "OR unite = '' ");
                }
                else
                {
                     requete = string.Concat(requete, "OR unite = '" + listUnite.SelectedValue + "' ");
                }
                if (listAgence.SelectedValue == "entete")
                {
                     requete = string.Concat(requete, "OR agence = '' ");
                }
                else
                {
                     requete = string.Concat(requete, "OR agence = '" + listAgence.SelectedValue + "' ");
                }
                if (listGroupeAgence.SelectedValue == "entete")
                {
                     requete = string.Concat(requete, "OR groupeAgence = '' ");
                }
                else
                {
                     requete = string.Concat(requete, "OR groupeAgence = '" + listGroupeAgence.SelectedValue + "' ");
                }
                if (listCategorie.SelectedValue == "entete")
                {
                     requete = string.Concat(requete, "OR categorie = '' ");
                }
                else
                {
                     requete = string.Concat(requete, "OR categorie = '" + listCategorie.SelectedValue + "' ");
                }
                if (txtWMatricule.WatermarkText == "Matricule : ")
                {
                     requete = string.Concat(requete, "OR matricule = '' ");
                }
                else
                {
                     requete = string.Concat(requete, "OR matricule = '" + txtMatricule.Text + "' ");
                }
                if (txtWNomPrenom.WatermarkText == "Nom Prénom : ")
                {
                     requete = string.Concat(requete, "OR nom_prenom = '' ");
                }
                else
                {
                    requete = string.Concat(requete, "OR nom_prenom = '" + txtNomPrenom.Text + "' ");
                }
                if (listTypeDocument.SelectedValue == "entete")
                {
                     requete = string.Concat(requete, "OR typeDocument = '' ");
                }
                else
                {
                     requete = string.Concat(requete, "OR typeDocument = '" + listTypeDocument.SelectedValue + "' ");
                }
                SqlCommand sqlDA = new SqlCommand(requete);
                reader = sqlDA.ExecuteReader();
                GridView2.DataSource = reader;
                GridView2.DataBind();
                sqlDA.Dispose();
            }
            catch (Exception ex) 
            { 
                Outil.Message(message, this);
                Console.WriteLine (ex);
            }
    Ma chaine "requete" reçois bien ma requête correctement sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SqlCommand sqlDA = new SqlCommand(requete);
    Mais ensuite, le reader est à "null" et ça me sort en exception :
    "ExecuteReader*: la propriété Connection n'a pas été initialisée."} System.Exception {System.InvalidOperationException}"
    Qu'est-ce qui me manque??
    Je ne vois pas comment remplir mon gridView autrement...

  13. #13
    Membre chevronné Avatar de Redouane
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    435
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 435
    Par défaut
    bonjour,

    il faut donner au SqlCommand, la connexion que t'a crée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SqlCommand sqlDA = new SqlCommand(requete, connexion);

  14. #14
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 32
    Par défaut
    Je t'aime toi... lool
    Y'avait bien ce problème là, et j'ai mis un dataset, plutot qu'un datareader aussi...
    Tout fonctionne comme je veux c'est cool!!!

    Pour ceux que ça intéresse, voila le code :

    ASP :
    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
            <!-- Déclaration du Tableau 2 : Affiche selon la recherche -->
            <asp:GridView ID="GridView2" runat="server" AllowPaging="True" AllowSorting="True"
                DataKeyNames="matricule,typeDocument"
                AutoGenerateColumns="False" 
                SkinID="tableMaitre"
                OnSelectedIndexChanged="GridView2_SelectedIndexChanged"
                OnDataBound="GridView2_DataBound" 
                OnRowDataBound="GridView2_RowDataBound"
                OnSorting="GridView2_Sorting" Width="95%">
                <Columns>
                    <asp:BoundField DataField="societe" HeaderText="Société" SortExpression="societe">
                        <HeaderStyle CssClass="monGridView"/>
                        <ItemStyle Width="12.04%" CssClass="monGridView"/>
                    </asp:BoundField>
                    <asp:BoundField DataField="unite" HeaderText="Unité" SortExpression="unite">
                        <HeaderStyle CssClass="monGridView"/>
                        <ItemStyle Width="14.46%" CssClass="monGridView"/>
                    </asp:BoundField>
                    <asp:BoundField DataField="groupeAgence" HeaderText="Groupe Agence" SortExpression="groupeAgence">
                        <HeaderStyle CssClass="monGridView"/>
                        <ItemStyle Width="14.46%" CssClass="monGridView"/>
                    </asp:BoundField>
                    <asp:BoundField DataField="agence" HeaderText="Agence" SortExpression="agence">
                        <HeaderStyle CssClass="monGridView"/>
                        <ItemStyle Width="14.46%" CssClass="monGridView"/>
                    </asp:BoundField>
                    <asp:BoundField DataField="categorie" HeaderText="Catégorie" SortExpression="categorie">
                        <HeaderStyle CssClass="monGridView"/>
                        <ItemStyle Width="5.42%" CssClass="monGridView"/>
                    </asp:BoundField>
                    <asp:BoundField DataField="matricule" HeaderText="Matricule" SortExpression="matricule">
                        <HeaderStyle CssClass="monGridView"/>
                        <ItemStyle Width="5.42%" CssClass="monGridView"/>
                    </asp:BoundField>
                    <asp:BoundField DataField="nom_prenom" HeaderText="Nom Prénom" SortExpression="nom_prenom">
                        <HeaderStyle CssClass="monGridView"/>
                        <ItemStyle Width="14.46%" CssClass="monGridView"/>
                    </asp:BoundField>
                    <asp:BoundField DataField="TypeDocument" HeaderText="Type Document" SortExpression="TypeDocument">
                        <HeaderStyle CssClass="monGridView"/>
                        <ItemStyle Width="12.04%" CssClass="monGridView"/>
                    </asp:BoundField>
                    <asp:TemplateField>
                        <HeaderStyle HorizontalAlign="Center" />
                        <ItemTemplate>
                            <asp:ImageButton ID="afficheDocument2" runat="server" OnClick="afficheDocument2_Click" />
                        </ItemTemplate>
                        <ItemStyle Width="2.41%" />
                    </asp:TemplateField>
                    <asp:TemplateField>
                        <HeaderStyle HorizontalAlign="Center" />
                        <HeaderTemplate>
                            <asp:CheckBox ID="lesSelections2" runat="server"/>
                        </HeaderTemplate>
                        <ItemStyle Width="2.41%" HorizontalAlign="Center" />
                        <ItemTemplate>
                            <asp:CheckBox ID="uneSelection2" runat="server" />
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>
            <asp:SqlDataSource ID="dgvDataRecherche" runat="server" ConnectionString="<%$ ConnectionStrings:Cnx_DossIndiv %>"
                 DeleteCommand="DELETE FROM [TABLEAU]             
                                WHERE [matricule] = @matricule            
                                AND [typeDocument] = @typeDocument;">            
                <SelectParameters>
                    <asp:ControlParameter ControlID="listSociete" Name="societe" PropertyName="SelectedValue" 
                        Type="String" />
                    <asp:ControlParameter ControlID="listUnite" Name="unite" PropertyName="SelectedValue" 
                        Type="String" />
                    <asp:ControlParameter ControlID="listGroupeAgence" Name="groupeAgence" PropertyName="SelectedValue"
                        Type="String" />
                    <asp:ControlParameter ControlID="listAgence" Name="agence" PropertyName="SelectedValue"
                        Type="String" />
                    <asp:ControlParameter ControlID="listCategorie" Name="categorie" PropertyName="SelectedValue"
                        Type="String" />
                    <asp:ControlParameter ControlID="txtMatricule" Name="matricule" PropertyName="Text"
                        Type="String" />
                    <asp:ControlParameter ControlID="txtNomPrenom" Name="nom_prenom" PropertyName="Text"
                        Type="String" />
                    <asp:ControlParameter ControlID="listTypeDocument" Name="TypeDocument" PropertyName="SelectedValue"
                        Type="String" />
                </SelectParameters>
                <DeleteParameters>
                    <asp:Parameter Name="matricule" />
                    <asp:Parameter Name="typeDocument" />
                </DeleteParameters>
            </asp:SqlDataSource>
    C# :
    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
        protected void btRechercher_Click(object sender, EventArgs e)
        {
            lesBoutons();
            GridView1.Visible = false;
            GridView2.Visible = true;
            string requete;
            string message = "Problème lors de la connexion";
            SqlConnection connexion = new SqlConnection("Data Source=STQY-589\\SQLEXPRESS; Initial Catalog=DossIndiv;Integrated Security=True");
            try
            {
                if (connexion.State == ConnectionState.Closed)
                {
                     connexion.Open();
                }
                // Début de la requête
                if (listSociete.SelectedValue == "entete")
                {
                     requete = "SELECT * FROM TABLEAU WHERE societe = '' ";
                }
                else
                {
                     requete = "SELECT * FROM TABLEAU WHERE societe = '" + listSociete.SelectedValue + "' ";
                }
                if (listUnite.SelectedValue == "entete")
                {
                     requete = string.Concat(requete, "OR unite = '' ");
                }
                else
                {
                     requete = string.Concat(requete, "OR unite = '" + listUnite.SelectedValue + "' ");
                }
                if (listAgence.SelectedValue == "entete")
                {
                     requete = string.Concat(requete, "OR agence = '' ");
                }
                else
                {
                     requete = string.Concat(requete, "OR agence = '" + listAgence.SelectedValue + "' ");
                }
                if (listGroupeAgence.SelectedValue == "entete")
                {
                     requete = string.Concat(requete, "OR groupeAgence = '' ");
                }
                else
                {
                     requete = string.Concat(requete, "OR groupeAgence = '" + listGroupeAgence.SelectedValue + "' ");
                }
                if (listCategorie.SelectedValue == "entete")
                {
                     requete = string.Concat(requete, "OR categorie = '' ");
                }
                else
                {
                     requete = string.Concat(requete, "OR categorie = '" + listCategorie.SelectedValue + "' ");
                }
                if (txtWMatricule.WatermarkText == "Matricule : ")
                {
                     requete = string.Concat(requete, "OR matricule = '' ");
                }
                else
                {
                     requete = string.Concat(requete, "OR matricule = '" + txtMatricule.Text + "' ");
                }
                if (txtWNomPrenom.WatermarkText == "Nom Prénom : ")
                {
                     requete = string.Concat(requete, "OR nom_prenom = '' ");
                }
                else
                {
                    requete = string.Concat(requete, "OR nom_prenom = '" + txtNomPrenom.Text + "' ");
                }
                if (listTypeDocument.SelectedValue == "entete")
                {
                     requete = string.Concat(requete, "OR typeDocument = '' ");
                }
                else
                {
                     requete = string.Concat(requete, "OR typeDocument = '" + listTypeDocument.SelectedValue + "' ");
                }
                // Exécution de la requête et affichage du GridView
                SqlCommand commande = new SqlCommand(requete, connexion);
                SqlDataAdapter sqlDA = new SqlDataAdapter(commande);
                DataSet ds = new DataSet();
                sqlDA.Fill(ds);
                GridView2.DataSource = ds;
                GridView2.DataBind();
                EnableViewState = true;
                commande.Dispose();
            }
            catch (Exception ex) 
            { 
                Console.WriteLine(ex);
            }
        }
     
        protected void GridView2_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            DataSet ds = new DataSet();
            GridView2.PageIndex = e.NewPageIndex;
            GridView2.DataSource = ds;
            GridView2.DataBind();
        }
    Encore merci beaucoup pour ton aide Redouane ^^

  15. #15
    Membre chevronné Avatar de Redouane
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    435
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 435
    Par défaut
    je t'en prie, j'ai essayé juste de résoudre avec toi les problèmes générées, mais tt le code tu l'a fait toi même

    la prochaine fois, essaye de travailler avec des procédures stockées aux lieux des requettes sql, surtout si ces dernieres sont compliquées.

    bonne courage

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

Discussions similaires

  1. Dropdownlist dans Gridview sur page Sharepoint
    Par Faro dans le forum Développement Sharepoint
    Réponses: 0
    Dernier message: 19/10/2009, 18h54
  2. Réponses: 4
    Dernier message: 19/04/2009, 20h49
  3. bind sortedlist dans Dropdownlist dans gridview
    Par richton95 dans le forum VB.NET
    Réponses: 0
    Dernier message: 23/01/2009, 16h59
  4. probleme avec dropdownlist et gridview
    Par ypoupou dans le forum C#
    Réponses: 1
    Dernier message: 05/12/2008, 17h05
  5. dropdownlist et gridview
    Par hermine dans le forum ASP.NET
    Réponses: 5
    Dernier message: 08/08/2007, 21h18

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