
效果如上图图表的下半部分,这在中国的软件项目中,也算一个比较常见的需求了。
实现代码如下:

合并GridView单元格
public void MergeRows(ref GridView gv, int cellIndex)
{
int t = 0;
int count = 1;
string temp = gv.Rows[0].Cells[cellIndex].Text;
for (int i = 1; i < gv.Rows.Count; i++)
{
if (gv.Rows[i].Cells[cellIndex].Text == temp)
{
count++;
gv.Rows[t].Cells[cellIndex].RowSpan = count;
gv.Rows[i].Cells[cellIndex].Visible = false;
}
else
{
t = i;
count = 1;
temp = gv.Rows[i].Cells[cellIndex].Text;
}
}
}
在GridView的DataBound事件中调用上面的函数:

调用代码
protected void gvTarget_DataBound(object sender, EventArgs e)
{
MergeRows(ref gvTarget,0);
MergeRows(ref gvTarget,1);
}