Bonjour à tous !
J'espere etre dans la bonne catégorie du forum,
J’ai créé un gridView comme ci en asp net :
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.
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()) )>=9"> </asp:SqlDataSource>
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
Partager