2012-07-16 78 views
1

如果我有gridview自動生成列,然後表添加正確的列,但我添加下拉標題到表,並不希望列自動生成。當我將這些行添加到數據表中並將其綁定到gridview時,什麼也沒有顯示出來。GridView不綁定到數據表

這是我的GridView控件代碼:

<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"> 

     <AlternatingRowStyle BackColor="White" ForeColor="#333333" /> 
     <Columns> 
      <asp:BoundField HeaderText="Date" /> 

      <asp:BoundField HeaderText="Time" /> 

      <asp:TemplateField HeaderText="Type"> 
       <HeaderTemplate> 
        <asp:DropDownList ID="TypeList" runat="server" Height="21px" Width="134px" 
        DataSourceId="dsWarningType" 
        DataTextValue="Name" DataValueField="Name"> 
        </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" /> 

     </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> 

我宣佈的數據表和相應的列。在我手動填寫DataTable後,我簡單地將其綁定:

dt = new DataTable(); 

dt.Columns.Add("Date"); 
dt.Columns.Add("Time"); 
dt.Columns.Add("Type"); 
dt.Columns.Add("Process"); 
dt.Columns.Add("Index"); 
dt.Columns.Add("Body"); 
//Manually fill in data.... 
... 

GridView3.DataSource = dt; 
GridView3.DataBind(); 

回答

3

您需要設置綁定字段的DataField屬性。

<asp:BoundField HeaderText="Date" DataField="Date" /> 

有一個看看這個例子:

http://msdn.microsoft.com/en-us/library/aa479342.aspx

+0

我只是說,當你發佈。你怎麼綁定TemplateFields?他們沒有DataField屬性。 – tareqx3 2012-07-16 21:46:32

+0

你應該可以使用像<%#Eval(「FieldName」)%> – 2012-07-16 21:56:31

+0

這也解決了這個問題http://forums.asp.net/t/1221383.aspx/1 – 2012-07-16 22:18:03