2013-06-04 50 views
0

我遇到的问题是让我的DataTable显示在Gridview中。我已经在Web上搜索了答案,但是我发现的所有内容都与在执行查询后绑定数据库信息有关。我必须操纵从查询中获得的数据以显示平均值,因此我的数据表中的所有内容都存储在局部变量和容器中。以下是aspx页面上gridview的代码,以及将我的行添加到表格并将表格绑定到girdview的块。将不胜感激为什么它不显示在网络上的任何帮助。我正在使用VS2012和.Net v4将数据表绑定到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(); 

       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

您不需要重新创建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(); 
+0

谢谢!完美地工作。 – pham307

+0

完全没问题=] – Sean