public static void GroupItemTemplate(GridView GridView1, int cols)
{
if(GridView1.Rows.Count<1||cols>GridView1.Rows[0].Cells.Count-1)
{
return;
}
Label lbl1 = (Label)GridView1.Rows[0].Cells[cols].FindControl("PLANNAME");
TableCell oldTc = GridView1.Rows[0].Cells[cols];
for (int i = 1; i < GridView1.Rows.Count; i++)
{
TableCell tc = GridView1.Rows[i].Cells[cols];
Label lbl2 = (Label)GridView1.Rows[i].Cells[cols].FindControl("PLANNAME");
if (lbl1.Text == lbl2.Text)
{
lbl2.Visible = false;
if (oldTc.RowSpan == 0)
{
oldTc.RowSpan = 1;
}
oldTc.RowSpan++;
}
else
{
lbl1 = lbl2;
oldTc = tc;
}
}
}
先将需要的值全部初始化:
行数设为0,字符串的值设为String.Empty,以及最后一个相同值的行的索引设为0
1 如果行数大于0,
那么将需要合并的第一行第N列的值赋值给初始化的字符串对象。
第一行第N列的行合并值设为1
2 当行数小于GridView对象的总行数时,执行
2.1 先判断第二行的值是否等于第一行的值
如果相等的话,那么第二行的可见属性就为false.
并且这一行的第N列的航合并值自增1;
如果不相等的话,将第i行第N列的值赋值给初始化的字符串,
将这一行的索引赋值给初始化的整型变量
将第i行第N列的合并行数的值设为1.