Как проверить переменную строку в DataBound - PullRequest
2 голосов
/ 11 января 2012

Этот код вставляет строку под первую строку, которую я выбираю для редактирования, но когда я редактирую вторую строку, теперь появляется новая строка, может кто-то сказать мне или показать, как это исправить. Я пытался сделать e.Row.RowInex + 1, и я не получаю строк. но если я сделаю e.Row.RowInex + 2, я получу новую строку для первого, но не второго.

    protected void PageSettings_DataBound(object sender, GridViewRowEventArgs e)
    {
    if ((e.Row.RowState & DataControlRowState.Edit) > 0))
    {
        GridViewRow row = new GridViewRow(e.Row.RowIndex + 2, -1, DataControlRowType.DataRow, DataControlRowState.Normal);
        row.Cells.AddRange(CreateCells());

        Table table = e.Row.Parent as Table;
        table.Rows.AddAt(e.Row.RowIndex + 2, row);

    }
}

private TableCell[] CreateCells()
{
    TableCell[] cells = new TableCell[2];

    TableCell cell;

    cell = new TableCell();
    cell.ColumnSpan = 2;
    cells[0] = cell;

    cell = new TableCell();
    cell.ColumnSpan = 4;
    cells[1] = cell;

    return cells;

}

Решено для любого, у кого есть эта проблема

((e.Row.RowState & DataControlRowState.Edit) > 0)

1 Ответ

1 голос
/ 12 января 2012

Для ответа на ваш заглавный вопрос: «Как проверить переменную строку в DataBound»:

protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        if (e.Row.RowState == DataControlRowState.Alternate)
        {
            // alternate rows
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...