将DataTable绑定到Gridview - 不显示在Web页面上

时间:2013-06-04 18:10:57

标签: c# asp.net gridview

我遇到的问题是让我的DataTable显示在Gridview中。我在网上搜索了答案,但我发现的所有内容都与查询执行后立即绑定数据库信息有关。我必须操纵从查询中获取的数据以显示平均值,以便我的数据表中的所有内容都存储在本地变量和容器中。下面是aspx页面上gridview的代码,以及将表格添加到表格并将表格绑定到girdview的块。任何有关它为什么不在网上显示的帮助将不胜感激。我正在使用VS2012和.Net v4

DataRow newRow;
                 for (int i = 0; i < portcount; i++)
                 {
                     newRow = averageTable.NewRow();
                     newRow["port_num"] = i+1;
                     newRow["port_status"] = currentstat[i]; //this is a list<Int32>
                     newRow["average_uptime"] = (statusCalc[i] / counter) * 100;
                     //statusCalc is an int array
                     averageTable.Rows.Add(newRow);
                 }
                 statusRdr.Close();

                 GridView completeView = new GridView();
                 this.completeView.Visible = true;
                 completeView.DataSource = averageTable;
                 completeView.DataBind();

<asp:Content ID="bodyContnet" ContentPlaceHolderID="cphContent" runat="server">
        <asp:GridView ID="completeView" runat="server" AutoGenerateColumns="False" ViewStateMode="Enabled" ForeColor="WhiteSmoke" Width="51%" Height="204px">
            <Columns>
                <asp:BoundField DataField="port_num" HeaderText="Port" />
                <asp:BoundField DataField="port_status" HeaderText="Status" />
                <asp:BoundField DataField="average_uptime" HeaderText="Average Uptime" />
            </Columns>
        </asp:GridView>
        <br />
        <br />
        <asp:Label ID="message" runat="server" ForeColor="WhiteSmoke" Text="Port Status Table"></asp:Label>
    </asp:Content>

1 个答案:

答案 0 :(得分:1)

您无需重新创建GridView,它已经在页面上并且默认情况下可见。删除执行此操作的行,以便您的代码如下所示:

DataRow newRow;
for (int i = 0; i < portcount; i++)
{
    newRow = averageTable.NewRow();
    newRow["port_num"] = i+1;
    newRow["port_status"] = currentstat[i]; //this is a list<Int32>
    newRow["average_uptime"] = (statusCalc[i] / counter) * 100;
    //statusCalc is an int array
    averageTable.Rows.Add(newRow);
}
statusRdr.Close();

completeView.DataSource = averageTable;
completeView.DataBind();