I’ve been trying to get this to work all day. I need to filter the gridview based on what is in the dropdownlists in the headers. I can do that in my code-behind, but how do i then bind the table that I created to the gridview? gridview.databind() does not work in this situation since the columns are not databound columns.
Here is my code:
<asp:GridView ID="GridView3" runat="server" CellPadding="3"
ForeColor="#333333" GridLines="None"
AllowSorting="True" SortedAscendingHeaderStyle-CssClass="sortasc-header"
SortedDescendingHeaderStyle-CssClass="sortdesc-header"
AllowPaging="True" PageSize="17" PagerSettings-Mode="NextPreviousFirstLast"
ShowHeaderWhenEmpty="True" PagerStyle-Font-Names="WebDings" PagerStyle-Font-Size="Medium"
PagerSettings-FirstPageText=" 7 " PagerSettings-PreviousPageText=" 3 "
PagerSettings-NextPageText=" 4 " PagerSettings-LastPageText=" 8 "
Font-Size="Small" onpageindexchanging="GridView3_PageIndexChanging"
onsorting="GridView3_Sorting" AutoGenerateColumns="False"
ondatabound="GridView3_DataBound">
<AlternatingRowStyle BackColor="White" ForeColor="#333333" />
<Columns>
<asp:BoundField HeaderText="Date" DataField="Date" />
<asp:BoundField HeaderText="Time" DataField="Time"/>
<asp:TemplateField HeaderText="Type">
<HeaderTemplate>
<asp:DropDownList ID="TypeList" runat="server" Height="21px" Width="134px"
DataSourceId="dsWarningType"
DataTextValue="Name" DataValueField="Name">
<asp:ListItem Text="All" Selected="True"></asp:ListItem>
</asp:DropDownList>
</HeaderTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Process" >
<HeaderTemplate>
<asp:DropDownList ID="Process" runat="server" Height="21px" Width="134px"
>
</asp:DropDownList>
</HeaderTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Index" >
<HeaderTemplate>
<asp:DropDownList ID="Index" runat="server" Height="21px" Width="134px"
>
</asp:DropDownList>
</HeaderTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Body" DataField="Body"/>
</Columns>
<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerSettings FirstPageText=" 7 " LastPageText=" 8 " Mode="NextPreviousFirstLast" NextPageText=" 4 " PreviousPageText=" 3 "></PagerSettings>
<PagerStyle BackColor="#5D7B9D" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#DCE2E8" ForeColor="#333333" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingHeaderStyle CssClass="sortasc-header"></SortedAscendingHeaderStyle>
<SortedDescendingHeaderStyle CssClass="sortdesc-header"></SortedDescendingHeaderStyle>
</asp:GridView>
When I create my table, it binds the Date, Time, and Body fields just fine, but leaves the Type,Process, and Index fields blank.
Use Eval or Bind to bind the dropdownlists
example