public static class GridViewHelper
{
// 1. 合併某一列的所有欄位(橫向)
public static void GroupRow(GridView gv, int rowIndex) { ... }
// 2. 合併某一列的指定欄位範圍(橫向區塊)
public static void GroupRow(GridView gv, int rowIndex, int startCol, int endCol) { ... }
// 3. 合併某一欄的所有列(縱向)
public static void GroupCol(GridView gv, int colIndex) { ... }
// 4. 合併某一欄的指定列範圍(縱向區塊)
public static void GroupCol(GridView gv, int colIndex, int startRow, int endRow) { ... }
}
TableCell.Text,相同則 Visible=false、遞增 ColumnSpan 或 RowSpan。VerticalAlign = VerticalAlign.Middle 置中顯示。DataBound 事件後呼叫,確保儲存格已建立。protected void GridView1_DataBound(object sender, EventArgs e)
{
GridViewHelper.GroupCol(GridView1, 0); // 第 0 欄合併相同值
GridViewHelper.GroupRow(GridView1, 2, 1, 3); // 第 2 列,第 1-3 欄合併
}
此工具類可直接放入專案,支援最常見的表格合併需求,無需繼承 GridView 或覆寫 Render。