之前有做gridview合并控件行,网上找的方法没用,稍微改了一下方法,可以合并控件行了。 1.一般合并行的方法 public static void GroupRows(GridView gv, int cellNum) { int i = 0, rowSpanNum = 1; while (i < gv.Rows.Count - 1) { GridViewRow gvr = gv.Rows[i]; for (++i; i < gv.Rows.Count; i++) { GridViewRow gvrNext = gv.Rows[i]; if (gvr.Cells[cellNum].Text == gvrNext.Cells[cellNum].Text) { gvrNext.Cells[cellNum].Visible = false; rowSpanNum++; } else { gvr.Cells[cellNum].RowSpan = rowSpanNum; rowSpanNum = 1; break; } if (i == gv.Rows.Count - 1) { gvr.Cells[cellNum].RowSpan = rowSpanNum; } } } } 2.合并控件行的方法 public static void GroupRows2(GridView gv, int cellNum) { int i = 0, rowSpanNum = 1; while (i < gv.Rows.Count - 1) { GridViewRow gvr = gv.Rows[i]; for (++i; i < gv.Rows.Count; i++) { GridViewRow gvrNext = gv.Rows[i]; if (((控件类型)gvr.Cells[cellNum].FindControl("控件名字")).Text == ((控件类型)gvrNext.Cells[cellNum].FindControl("控件名字")).Text) { gvrNext.Cells[cellNum].Visible = false; rowSpanNum++; } else { gvr.Cells[cellNum].RowSpan = rowSpanNum; rowSpanNum = 1; break; } if (i == gv.Rows.Count - 1) gvr.Cells[cellNum].RowSpan = rowSpanNum; } } }