Bonjour à tous !

J'espere etre dans la bonne catégorie du forum,

J’ai créé un gridView comme ci en 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
 
<asp:GridView ID="grd_risqueAreviser" runat="server" CssClass="mydatagrid" PagerStyle-CssClass="pager"
 HeaderStyle-CssClass="header" RowStyle-CssClass="rows"
      AutoGenerateColumns="False" DataKeyNames="POI_id" 
      DataSourceID="ERP_pointAreviser" 
      OnRowDataBound = "grd_risqueAreviser_RowDataBound" OnRowCommand="grd_risqueAreviser_RowCommand">
            <Columns>
                <asp:BoundField DataField="POI_id" HeaderText="Num." ReadOnly="True" 
                    SortExpression="POI_id" />
                <asp:BoundField DataField="POI_situation" HeaderText="Situation" 
                    SortExpression="POI_situation" />
                <asp:BoundField DataField="EVA_couleur" HeaderText="Eval." 
                    SortExpression="EVA_couleur" />
                <asp:BoundField DataField="USE_cdsid" HeaderText="Responsable" 
                    SortExpression="USE_cdsid" />
                <asp:BoundField DataField="POI_dateRevision" HeaderText="Date Révision" 
                    SortExpression="POI_dateRevision" />
 
                <asp:TemplateField>
                      <ItemTemplate>
                        <asp:Button class="btn btn-primary"  ID="btn_goToPoint" runat="server" 
                          CommandName="goToPoint" 
                    CommandArgument="<%# ((GridViewRow) Container).RowIndex %>"
                          Text="►" />
                      </ItemTemplate> 
                    </asp:TemplateField>
 
            </Columns>
            <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
        </asp:GridView>
 
  <asp:SqlDataSource ID="ERP_pointAreviser" runat="server" 
      ConnectionString="<%$ ConnectionStrings:ERPConnectionString %>" SelectCommand="SELECT T_POINT.POI_id, T_POINT.POI_situation, EVA_couleur,T_POINT.USE_cdsid, POI_dateRevision 
        FROM T_POINT
        LEFT OUTER JOIN TR_EVALUATION ON T_POINT.EVA_id = TR_EVALUATION.EVA_id
        WHERE POI_actif  = 1
        AND DATEDIFF(month, POI_dateRevision, CONVERT (date, GETDATE()) )&gt;=9">
  </asp:SqlDataSource>
J’aimerai sur ce tableau appliquer des filtres sur certains champs (on ne releve que les point de la date 04/05/06 ) par exemple, pour cela des listes deroulantes remplis avec un selec t DISTINCT nous permette de choisir les champs à filtrer et sur quelle valeur, enfin un bouton « appliquer filtre » permet d’appliquer l’ensemble des filtres.

Au début je pensais faire en c# ERP_pointAreviser.CommandText = « … » pour chaque possibilité, cependant j’ai 11 champs pour les filtres ce qui fait un beaucoup de possibilité et au moins 60 requêtes à écrire…

J’ai bien trouvé quelques articles sur Microsoft mais je n’arrive pas a les appliquer dans mon cas…

Avez-vous une solution pour faire cela rapidement, comme faire 11 if pour chaque champs et a chaque fois on fait en c# :
ERP_pointAreviser.SelectCommand.addFillter = “date = txt_date.text”
Et après tous les if on a notre commandText qui contient la requete finale avec tous les where et si rien n’est selectionné pas de where ajouté à la requete, cela serait l’idéal !!! Car je ne me vois pas écrire 50 requêtes voir plus afin de toucher à tous les cas possibles.

Merci par avance !

Damien