C# ASP の GridView にプログラムで行を追加することは可能ですか?
はいの場合、どのように?
配列やデータソースからではなく、コードから直接静的データを追加したい
DataTable dt = new DataTable();
DataRow dr = dt.NewRow();
dr["Column1"] = string.Empty;
dt.Rows.Add(dr);
GridView
次に、にバインドできますDataTable
...
gv.DataSource = dt;
gv.DataBind();
dataGridView1.Columns[0].Name = "column1";
dataGridView1.Columns[1].Name = "column2";
string[] row1 = new string[] { "column1 value", "column2 value" };
dataGridView1.Rows.Add(row1);
GridViewRowsCollectionには.Add
メソッドがないため、GridView に対して直接行うことはできません。
代替手段があります。たとえば、DataTable にバインドする場合、データを含むカスタム行を DataTable に追加できます。
別の代替手段 - レンダリングされた HTML テーブルに行を追加して、クライアントで実行します。
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);
}