0

私が抱えている問題は、DataTable を Gridview に表示することです。Web で回答を検索しましたが、見つかったものはすべて、クエリが実行された直後にデータベース情報をバインドすることに関連しています。クエリから取得したデータを操作して平均を表示する必要があるため、データテーブル内のすべてがローカル変数とコンテナーに格納されます。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>
4

1 に答える 1

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();
于 2013-06-04T18:15:24.617 に答える