/// <summary>
    ///   #region GridView中的第二列相同的数据列全部合并
    /// </summary>
    /// <param name="gridView"></param>    public static void GroupRowSpan(GridView gridView)
    {
        for (int rowIndex = gridView.Rows.Count - 2; rowIndex >= 0; rowIndex--)
        {
            GridViewRow row = gridView.Rows[rowIndex];
            GridViewRow previousRow = gridView.Rows[rowIndex + 1];            for (int i = 1; i < 2; i++)
            {
                if (row.Cells[i].Text == previousRow.Cells[i].Text)
                {
                    if (previousRow.Cells[i].RowSpan < 2)
                    {
                        row.Cells[i].RowSpan = 2;
                    }
                    else
                    {
                        row.Cells[i].RowSpan = previousRow.Cells[i].RowSpan + 1;
                    }                    previousRow.Cells[i].Visible = false;                }
                // previousRow.Cells[i + 1].Text = (int.Parse(previousRow.Cells[i + 1].Text) + int.Parse(previousRow.Cells[i + 1].Text)).ToString();
            }
            // previousRow.Cells[i+1].Text=int.Parse(row.Cells[i + 1].Text)+int.Parse(row.Cells[i + 1].Text))
        }
    }
===============================================================================================================
(1)以上的方法是倒序写循环gridview,合并第二列相同的行,这是从网上参考的,测试ok.
(2)以下是我写的方法,是顺序循环gridview,合并第二列相同的行,测试不通过,nextRowline.Cells[culmm].RowSpan一直都是0,gridview 的数据连续三行相同的数据就不通过。各位兄弟姐妹,只要认真不是灌水的都有分,被采纳的给68分,谢谢大家了!======================================================================================================
 /// <summary>
    ///   #region GridView中的第二列相同的数据列全部合并
    /// </summary>
    /// <param name="gridView"></param>    public static void groupRowSpan2(GridView gridView)
    {
       
        for (int rowid = 0; rowid < gridView.Rows.Count - 1; rowid++)
        {
            GridViewRow rowline = gridView.Rows[rowid];
            GridViewRow nextRowline = gridView.Rows[rowid + 1];            for (int culmm = 1; culmm < 2; culmm++)
            {
                if (rowline.Cells[culmm].Text == nextRowline.Cells[culmm].Text)
                {                    if (nextRowline.Cells[culmm].RowSpan<2)
                    {                        rowline.Cells[culmm].RowSpan = 2;                    }
                    else
                    {
                        rowline.Cells[culmm].RowSpan = nextRowline.Cells[culmm].RowSpan + 1;
                    }
                    
                    nextRowline.Cells[culmm].Visible = false;
                }
               
                           }        }
    }

解决方案 »

  1.   

    GridView合并相同列回答只是习惯,跟分数没有关系
      

  2.   

    http://www.codeproject.com/KB/webforms/MergeGridViewCells.aspx
      

  3.   

    GRIDVIEW合并单元格
    public static void GroupCol(GridView GridView1, int cols,int sRow,int eRow)   
        {   
          if (GridView1.Rows.Count < 1 || cols > GridView1.Columns.Count - 1)   
          {   
            return;   
          }   
          TableCell oldTc = GridView1.Rows[sRow].Cells[cols];   
          for (int i = 1; i < eRow - sRow; i++)   
          {   
            TableCell tc = GridView1.Rows[sRow + i].Cells[cols];    
            tc.Visible = false;   
            if (oldTc.RowSpan == 0)   
            {   
              oldTc.RowSpan = 1;   
            }   
            oldTc.RowSpan++;   
            oldTc.VerticalAlign = VerticalAlign.Middle;   
          }   
        }   
      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;   
      }   
      }   
      }   
      }   
      

  4.   

    个是用vs2003的时候写的,现在第三方控件里就有属性合并同样的行了,gridview就没写对应的,你可以把下面的DataGrid1.Items都换成Gridview.Rows用,
    private void SpanGrid() 
    {
      int j=DataGrid1.Items.Count;//行数
      int u;//自循环所用参数
      for (int i = 0;i<j;i++)
      {
     int inRowSpan = 1;//跨行数
     string ItmStr = DataGrid1.Items[i].Cells[0].Text.ToString();
     for(u = i+1;u<j;u++)
     {
      if (ItmStr.Equals(DataGrid1.Items[u].Cells[0].Text.ToString()))
      {
       inRowSpan += 1;
       DataGrid1.Items[i].Cells[0].RowSpan = inRowSpan;//对最歪层所循环行赋要跨行数
       DataGrid1.Items[u].Cells[0].Visible = false;//当前被跨行不可见
      }
      else
      {
       break;
      }
     }
     i = u - 1;
      }

      

  5.   

    为什么别人不用顺序而用倒序你要明白大概对比了下代码,应该是rowline合并的问题,从下往上,那么只会改变最下面的2行,上面的行号不变从上往下,你合并了第1,第2行,那么下面的统统要变
      

  6.   

    GridView 72般绝技
      

  7.   

    <a href='http://hi.baidu.com/jizizeng/blog/item/b7fba516ed9c984720a4e9a9.html'>GridView合并单元格</a>
      

  8.   

    http://blog.csdn.net/21aspnet/archive/2007/03/25/1540301.aspx
      

  9.   

    GridView合并单元格
      

  10.   

     
    每天回帖即可获得10分可用分!小技巧:教您如何更快获得可用分  
    这里发言,表示您接受了CSDN社区的用户行为准则。 
    请对您的言行负责,并遵守中华人民共和国有关法律法规,尊重网上道德。 
    转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。