title: dynamically Binding GridView Rows using DropDownList headers as filter strings
body: <p>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.</p>
  
  <p>Here is my code:</p>
  
  <pre><code>&lt;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"&gt;
  
          &lt;AlternatingRowStyle BackColor="White" ForeColor="#333333" /&gt;
           &lt;Columns&gt;
               &lt;asp:BoundField HeaderText="Date" DataField="Date" /&gt;
  
               &lt;asp:BoundField HeaderText="Time" DataField="Time"/&gt;
  
              &lt;asp:TemplateField HeaderText="Type"&gt;
                  &lt;HeaderTemplate&gt;
                      &lt;asp:DropDownList ID="TypeList" runat="server" Height="21px" Width="134px" 
                      DataSourceId="dsWarningType" 
                      DataTextValue="Name" DataValueField="Name"&gt;
                      &lt;asp:ListItem Text="All" Selected="True"&gt;&lt;/asp:ListItem&gt; 
                      &lt;/asp:DropDownList&gt;
                   &lt;/HeaderTemplate&gt;
               &lt;/asp:TemplateField&gt;
  
                    &lt;asp:TemplateField HeaderText="Process" &gt;
               &lt;HeaderTemplate&gt;
                    &lt;asp:DropDownList ID="Process" runat="server" Height="21px" Width="134px" 
                     &gt;
                    &lt;/asp:DropDownList&gt;
               &lt;/HeaderTemplate&gt;
               &lt;/asp:TemplateField&gt;
  
                     &lt;asp:TemplateField HeaderText="Index" &gt;
               &lt;HeaderTemplate&gt;
                    &lt;asp:DropDownList ID="Index" runat="server" Height="21px" Width="134px" 
                     &gt;
                    &lt;/asp:DropDownList&gt;
               &lt;/HeaderTemplate&gt;
               &lt;/asp:TemplateField&gt;
  
               &lt;asp:BoundField HeaderText="Body" DataField="Body"/&gt;
  
           &lt;/Columns&gt;
          &lt;EditRowStyle BackColor="#999999" /&gt;
          &lt;FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /&gt;
          &lt;HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /&gt;
  
  &lt;PagerSettings FirstPageText=" 7 " LastPageText=" 8 " Mode="NextPreviousFirstLast"      NextPageText=" 4 " PreviousPageText=" 3 "&gt;&lt;/PagerSettings&gt;
  
          &lt;PagerStyle BackColor="#5D7B9D" ForeColor="White" HorizontalAlign="Center" /&gt;
          &lt;RowStyle BackColor="#DCE2E8" ForeColor="#333333" /&gt;
          &lt;SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /&gt;
  
  &lt;SortedAscendingHeaderStyle CssClass="sortasc-header"&gt;&lt;/SortedAscendingHeaderStyle&gt;
  
  &lt;SortedDescendingHeaderStyle CssClass="sortdesc-header"&gt;&lt;/SortedDescendingHeaderStyle&gt;
        &lt;/asp:GridView&gt;
  </code></pre>
  
  <p>When I create my table, it binds the Date, Time, and Body fields just fine, but leaves the Type,Process, and Index fields blank. </p>