日期:2014-05-17 浏览次数:20406 次
//单元格要合并的行数 public int intRowSpan = 1; //开始合并的索引值 public int intIndex = 0; //记录第一列相等的条件 private string strText = ""; protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { for (int i = 0; i < 1; i++) { if (e.Row.RowIndex == 0) { strText = e.Row.Cells[i].Text; } if (e.Row.RowType == DataControlRowType.DataRow && e.Row.RowIndex != 0) { if (e.Row.Cells[i].Text == strText) { intRowSpan++; GridView1.Rows[intIndex].Cells[i].RowSpan = intRowSpan; e.Row.Cells[i].Visible = false; } else { intRowSpan = 1; intIndex = e.Row.RowIndex; } strText = e.Row.Cells[i].Text; } this.Label1.Text = intRowSpan.ToString(); } }
/// <summary> /// 合并GridView中某列相同信息的行(单元格) /// </summary> /// <param name="GridView1">GridView</param> /// <param name="cellNum">第几列</param> public static void GroupRows(GridView GridView1, int cellNum) { int i = 0, rowSpanNum = 1; while (i < GridView1.Rows.Count - 1) { GridViewRow gvr = GridView1.Rows[i]; for (++i; i < GridView1.Rows.Count; i++) { GridViewRow gvrNext = GridView1.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 == GridView1.Rows.Count - 1) { gvr.Cells[cellNum].RowSpan = rowSpanNum; } } } }