方法1:
#region 合併儲存格
protected void Unite(GridView gv)
{
int i;
string LastType1;
int LastCell;
if (gv.Rows.Count > 0)
{
for (int j = 0; j < 6; j++)
{
if (j != 1 && j != 2 && j != 3)
{
LastType1 = gv.Rows[0].Cells[j].Text;
gv.Rows[0].Cells[j].RowSpan = 1;
LastCell = 0;
for (k= 1; k< gv.Rows.Count; k++)
{
if (gv.Rows.Cells[j].Text == LastType1)
{
gv.Rows[k].Cells[j].Visible = false;
gv.Rows[LastCell].Cells[j].RowSpan++;
}
else
{
LastType1 = gv.Rows[k].Cells[j].Text;
LastCell = k;
gv.Rows[k].Cells[j].RowSpan = 1;
}
}
}
}
}
}
#endregion
方法2:
http://blog.csdn.net/l18900201/archive/2008/09/27/2989076.aspx
方法3:
protected void GridView1_DataBound(object sender, EventArgs e)
{
for (int i = 0; i < this.GridView1.Rows.Count; i++)
{
int i0 = i;
string strCells0 = this.GridView1.Rows.Cells[0].Text;
for (int j = i + 1; j < this.GridView1.Rows.Count; j++)
{
if (strCells0 == this.GridView1.Rows[j].Cells[0].Text)
{
i++;
}
}
//垂直合併資料列的部份欄位
if (i != i0)
{
string strRowSpan = (i - i0 + 1).ToString();
this.GridView1.Rows[i0].Cells[0].Attributes.Add("rowspan", strRowSpan);
for (int x = i0 + 1; x <= i; x++)
{
this.GridView1.Rows[x].Cells.RemoveAt(0);
}
}
}
}