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はいろいろと思い出すのが大変…