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.

Я добавлю полу-пример в ближайшее время встречи.

Другие вопросы по тегам