asp.net динамически добавлять GridViewRow
Я посмотрел на этот пост как программно вставить строку в GridView? но я не могу заставить его добавить строку я попробовал его на RowDataBound, а затем событие DataBound, но они оба не работают здесь мой код, если кто-то может показать мне, как динамически добавлять строку в конец GridView не нижний колонтитул, что было бы здорово в любом случае вот мой код, который не работает
protected void CustomGridView_DataBound(object sender, EventArgs e)
{
int count = ((GridView)sender).Rows.Count;
GridViewRow row = new GridViewRow(count+1, -1, DataControlRowType.DataRow, DataControlRowState.Insert);
//lblCount.Text = count.ToString();
// count is correct
// row.Cells[0].Controls.Add(new Button { Text="Insert" });
// Error Here adding Button
Table table = (Table)((GridView)sender).Rows[0].Parent;
table.Rows.Add(row);
// table doesn't add row
}
1 ответов
используя событие RowDataBound, добавьте любой элемент управления в ячейку таблицы, а ячейку таблицы в GridViewRow. Наконец, добавьте GridViewRow в GridView по указанному индексу:
protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
GridViewRow row = new GridViewRow(e.Row.RowIndex+1, -1, DataControlRowType.DataRow, DataControlRowState.Insert);
TableCell cell = new TableCell();
cell.ColumnSpan = some_span;
cell.HorizontalAlign = HorizontalAlign.Left;
Control c = new Control(); // some control
cell.Controls.Add(c);
row.Cells.Add(cell);
((GridView)sender).Controls[0].Controls.AddAt(some_index, row);
}
это может быть не совсем так, как вам нужно, но это должно дать вам идею.