11

C# ASP の GridView にプログラムで行を追加することは可能ですか?

はいの場合、どのように?

配列やデータソースからではなく、コードから直接静的データを追加したい

4

5 に答える 5

15
DataTable dt = new DataTable();
DataRow dr = dt.NewRow();
dr["Column1"] = string.Empty;
dt.Rows.Add(dr);

GridView次に、にバインドできますDataTable...

gv.DataSource = dt;
gv.DataBind();
于 2013-10-08T20:22:55.013 に答える
3
dataGridView1.Columns[0].Name = "column1";
dataGridView1.Columns[1].Name = "column2";

string[] row1 = new string[] { "column1 value", "column2 value" };
dataGridView1.Rows.Add(row1);
于 2013-10-08T20:22:08.950 に答える
1

GridViewRowsCollectionには.Addメソッドがないため、GridView に対して直接行うことはできません。

代替手段があります。たとえば、DataTable にバインドする場合、データを含むカスタム行を DataTable に追加できます。

別の代替手段 - レンダリングされた HTML テーブルに行を追加して、クライアントで実行します。

于 2013-10-08T20:21:28.137 に答える
0

GridView_RowCreatedに行を挿入できます

protected void gvItems_RowCreated(object sender, GridViewRowEventArgs e)
{                    
    GridViewRow NewHeader = new GridViewRow(0, 0, DataControlRowType.DataRow, DataControlRowState.Insert);
    NewHeader.Font.Bold = true;
    NewHeader.CssClass = "heading";

    //Item#
    TableCell NewHeaderCell = new TableCell();
    NewHeaderCell.Text = "#";
    NewHeaderCell.HorizontalAlign = HorizontalAlign.Left;
    NewHeader.Cells.Add(NewHeaderCell);

    //Item#
    NewHeaderCell = new TableCell();
    NewHeaderCell.Text = "Item#";
    NewHeaderCell.HorizontalAlign = HorizontalAlign.Left;
    NewHeader.Cells.Add(NewHeaderCell);

    //Amount
    NewHeaderCell = new TableCell();
    NewHeaderCell.Text = "Amount";
    NewHeaderCell.HorizontalAlign = HorizontalAlign.Right;
    NewHeader.Cells.Add(NewHeaderCell);
    GridView1.Controls[0].Controls.AddAt(e.Row.RowIndex + 
        rowIndex, NewHeader);
}
于 2017-11-07T12:57:23.187 に答える