将行添加到网格视图

是否可以以编程方式在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 ,Like上插入行

 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); } 

我仍然建议您使用绑定/数据源,但当然您不必这样做。 以下应该做你想要的:

  DataGridViewTextBoxColumn columntype = new DataGridViewTextBoxColumn(); columntype.HeaderText = "Type"; columntype.Width = 80; dataGridView1.Columns.Add(columntype);