調用此方法就好嘍~~此例子中,合併的是第0個Cell(cellNum)
protected void RowSpanGrid(GridView gdv)
{
if (gdv.Rows.Count > 0)
{
for (int cellNum = 0; cellNum < gdv.Rows[0].Cells.Count; cellNum++)
{
if (cellNum == 0)
{
int i = 0, rowSpanNum = 1;
while (i < gdv.Rows.Count - 1)
{
GridViewRow gvr = gdv.Rows[i];
for (++i; i < gdv.Rows.Count; i++)
{
GridViewRow gvrNext = gdv.Rows[i];
if (gdv.DataKeys[gvr.RowIndex].Values[0].ToString() == gdv.DataKeys[gvrNext.RowIndex].Values[0].ToString())
{
//对列 cellNum 进行合并,从左向右,由上而下
gvrNext.Cells[cellNum].Visible = false;
rowSpanNum++;
}
else
{
gvr.Cells[cellNum].RowSpan = rowSpanNum;
rowSpanNum = 1;
break;
}
if (i == gdv.Rows.Count - 1)
{
gvr.Cells[cellNum].RowSpan = rowSpanNum;
}
}
}
}
}
}
}