【问题标题】:GridView isn't binding to datatableGridView 没有绑定到数据表
【发布时间】:2012-07-16 21:36:24
【问题描述】:

如果我有 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();

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    您需要设置绑定字段的 DataField 属性。

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

    看看这个例子:

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

    【讨论】:

    • 我刚刚在您发布时添加了该内容。你如何绑定模板字段呢?它们没有 DataField 属性。
    • 你应该可以使用类似
    猜你喜欢
    • 2011-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-15
    • 2012-09-16
    • 2012-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多