日期:2014-05-17 浏览次数:20496 次
//单元格要合并的行数
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;
}
}
}
}