Ist es möglich, programmgesteuert eine Zeile zu einer GridView in C # ASP hinzuzufügen?
Wenn ja, wie?
Ich möchte statische Daten direkt aus dem Code hinzufügen, nicht aus einem Array oder einer Datenquelle
DataTable dt = new DataTable();
DataRow dr = dt.NewRow();
dr["Column1"] = string.Empty;
dt.Rows.Add(dr);
Sie können dann Ihre GridView
an die DataTable
... binden.
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 hat keine .Add
-Methode, daher können Sie es nicht direkt in der GridView ausführen.
Es gibt Alternativen. Wenn Sie es beispielsweise an eine DataTable binden, können Sie der DataTable eine benutzerdefinierte Zeile mit Daten hinzufügen.
Eine andere Alternative - tun Sie dies auf dem Client, indem Sie der gerenderten HTML-Tabelle eine Zeile hinzufügen.
Zeilen können in GridView_RowCreated
, Like eingefügt werden
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);
}