public static bool MergeRows(GridView gvw, int sCol, int eCol) { try { for (int rowIndex = gvw.Rows.Count - 2; rowIndex >= 0; rowIndex--) { GridViewRow row = gvw.Rows[rowIndex]; GridViewRow previousRow = gvw.Rows[rowIndex + 1]; string rowstr = ""; string prestr = ""; for (int i = sCol; i < eCol + 1; i++) { rowstr += row.Cells[i].Text; prestr += previousRow.Cells[i].Text; } for (int i = sCol; i < eCol + 1; i++) { if (row.Cells[i].Text != "" && row.Cells[i].Text != " ") { if (rowstr == prestr) if(row.Cells[i].Text==previousRow.Cells[i].Text) { row.Cells[i].RowSpan = previousRow.Cells[i].RowSpan < 1 ? 2 : previousRow.Cells[i].RowSpan + 1; previousRow.Cells[i].Visible = false; } } } } } catch (Exception e) { return false; } return true; }
调用方法:
if (!DB.AF.MergeRows(gv, 1, 7)) 从左到右开始 1到7 单元格合并
{
return false;
}
if (!DB.AF.MergeRows(gv, 15, 15)) 第15咧开始 15行全部合并
{
return false;
}