Gridview добавляет строку динамически в RowDataBound с тем же RowState (Alternate или Normal)
Я динамически добавляю строки в коде в зависимости от строки, в настоящее время связанной с событием RowDataBound. Я хочу, чтобы добавленная строка находилась в том же состоянии (альтернативном или нормальном), что и текущая ограниченная строка, возможно ли это?
Я делаю что-то вроде этого, но это не соответствует тому, что я хочу. Я ожидаю, что добавленная строка динамически будет такой же, как текущая строка. Но это не так.
protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
GVData data = e.Row.DataItem as GVData; // not original object just for brevity
if(data.AddHiddenRow)
{
// the row state here should be the same as the current
GridViewRow tr = new GridViewRow(e.Row.RowIndex +1, e.Row.RowIndex + 1, DataControlRowType.DataRow, e.Row.RowState);
TableCell newTableCell = new TableCell();
newTableCell.Style.Add("display", "none");
tr.Cells.Add(newTableCell);
((Table)e.Row.Parent).Rows.Add(tr);
}
}
}
1 ответ
Хорошо, проблема в том, что GridView не распознает отображение: ни один из них не означает, что этот ряд будет скрыт и поэтому считается его частью своего чередующегося стиля. В этом случае вам нужно самостоятельно реализовать стилизацию и удалить ее из определения gridview.
Я добавлю полу-пример в ближайшее время встречи.