ASP.net GridView内のセル結合
忘れないためにメモメモ
// privateで宣言
private string beforeData = string.Empty;
private TableCell beforeCell = null;
// データ行でない場合は処理しない
if (e.Row.RowType != DataControlRowType.DataRow) return;
// 表示されているデータ
string showData = (string)DataBinder.Eval(e.Row.DataItem, "HOGE");
// 前行と同じ場合のみ処理
if (string.Equals(showData, beforeData))
{
// 前行と同じ場合、現在行のセルを非表示
// 前行セルのRowSpanをインクリメント(RowSpan=0の場合は2とする)
e.Row.Cells[0].Visible = false;
beforeCell.RowSpan = (beforeCell.RowSpan == 0 ? 2 : beforeCell.RowSpan + 1);
}
else
{
// 異なる場合は比較用に情報を保存
beforeCell = e.Row.Cells[i];
}
// 表示情報を保存
beforeData = showData;
久しぶりのASP.netはいろいろと思い出すのが大変…