1

RowDataBound イベントに現在バインドされている Row に応じて、コード ビハインドに行を動的に追加しています。追加された行を、現在境界のある行と同じ状態 (代替または通常) にしたいのですが、これは可能ですか?

私はこのようなことをしていますが、それは私が望むものに従っていません。動的に追加された行が現在の行と同じになると予想しています。そうではありません。

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);
        }
    }
}
4

1 に答える 1

2

問題は、GridView が display:none をこの行が非表示になることを意味するものとして認識しないため、代替スタイルの一部としてカウントされることです。この場合、スタイリングを明示的に自分で実装し、グリッドビューの定義から削除する必要があります。

私はすぐに会議を持っている半例を追加します。

于 2012-01-18T10:01:31.860 に答える