Gridview, itemtemplate créés dynamiquement
Bonjour, après moulte recherche sur ce site et internet en général
j'en viens à demander directement
je cherche à créer une gridview avec un header modifié afin de filtrer les données de ma gridview par colonne, la particularité est que la table utilisée pour le gridview peut changer
le gridview reçoit les données d'une sqldatasource avec requete "select * from table"
en asp, voici le code que cela donne
Code:
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
| <asp:GridView ID="GridView1" runat="server" AllowPaging="True"
AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="Firm"
DataSourceID="SqlDataSource1"
EmptyDataText="Pas de données pour le filtre actuel"><Columns>
<asp:TemplateField HeaderText="Firm" SortExpression="Firm"><EditItemTemplate><asp:Label ID="Label1" runat="server" Text='<%# Eval("Firm") %>'></asp:Label>
</EditItemTemplate><HeaderTemplate><asp:TextBox ID="TextBox1" runat="server" Width="120px"></asp:TextBox><asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/img/triangle.gif"
onclick="ImageButton1_Click" />
<asp:Label ID="Label3" runat="server">Firm</asp:Label>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("Firm") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Firm_Name" SortExpression="Firm_Name">
<HeaderTemplate>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:ImageButton ID="ImageButton2" runat="server" ImageUrl="~/img/triangle.gif"
onclick="ImageButton2_Click" />
<asp:Label ID="Label1" runat="server">Firm_Name</asp:Label>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("Firm_Name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns><HeaderStyle HorizontalAlign="Center" />
</asp:GridView> |
jusque là, pas de souci, tout fonctionne bien
par contre, la gridview doit pouvoir afficher non plus 1 table donnée, mais n'importe quelle table parmis environ 50
j'ai donc fait une dropdownliste qui contient le nom des tables (le probleme ne porte pas la dessus)
à l'évènement changedindex de la ddl, je tente de bind la gridview avec la nouvelle datasource, et là... c'est le drame avec le datakeynames que je n'arrive pas à changer
que ce soit avec
Code:
GridView1.DataKeyNames.SetValue("Procedure_Id", 0);
ou encore directement
Code:
GrivdView1.DataKeyNames[0] = "Procedure_Id"
je cherche donc à changer les données de mon gridview, tout en conservant son header qui sert à filtrer (une textbox, un label pour le nom de la colonne, et un bouton qui lance l'event du filtre)
j'espere que je me suis correctement exprimé
merci d'avance