本帖最后由 ljp88888 于 2012-06-01 11:38:09 编辑

解决方案 »

  1.   

     1/// <summary>
     2 /// 合并GridView中某列相同信息的行(单元格) 
     3 /// </summary>
     4 /// <param name="GridView1">GridView</param>
     5 /// <param name="cellNum">第几列</param>
     6 public static void GroupRows(GridView GridView1, int cellNum)
     7 {
     8     int i = 0, rowSpanNum = 1;
     9     while (i < GridView1.Rows.Count - 1)
    10     {
    11         GridViewRow gvr = GridView1.Rows[i];
    12 
    13         for (++i; i < GridView1.Rows.Count; i++)
    14         {
    15             GridViewRow gvrNext = GridView1.Rows[i];
    16             if (gvr.Cells[cellNum].Text == gvrNext.Cells[cellNum].Text)
    17             {
    18                 gvrNext.Cells[cellNum].Visible = false;
    19                 rowSpanNum++;
    20             }
    21             else
    22             {
    23                 gvr.Cells[cellNum].RowSpan = rowSpanNum;
    24                 rowSpanNum = 1;
    25                 break;
    26             }
    27 
    28             if (i == GridView1.Rows.Count - 1)
    29             {
    30                 gvr.Cells[cellNum].RowSpan = rowSpanNum;
    31             }
    32         }
    33     }
    34 }
    35 
    36 
      

  2.   

    我自己改好了,   不过用不不是你的方法
     public static void MergeRows(GridView gridView, int cellNum)
            {
                for (int rowIndex = gridView.Rows.Count - 2; rowIndex >= 0; rowIndex--)
                {
                    GridViewRow row = gridView.Rows[rowIndex];
                    GridViewRow previousRow = gridView.Rows[rowIndex + 1];
                    for (int i = 0; i < row.Cells.Count; i++)
                    {                    if (row.Cells[i].Text + row.Cells[cellNum].Text == previousRow.Cells[i].Text + previousRow.Cells[cellNum].Text)
                        {
                        row.Cells[i].RowSpan = previousRow.Cells[i].RowSpan < 2 ? 2 :
                                               previousRow.Cells[i].RowSpan + 1;
                        previousRow.Cells[i].Visible = false;
                        }
                    }
                }
            }
    就是添加个变量就OK了  呵呵  不过也谢谢你,结贴分不能给自己 算你捡便宜了