Ejemplo n.º 1
0
 /// <summary>
 /// GridView合并行,
 /// </summary>
 /// <param name="gv">GridView</param>
 /// <param name="startCol">开始列</param>
 /// <param name="endCol">结束列</param>
 public void MergeRow(GridView gv, int startCol, int endCol)
 {
     RowArg init = new RowArg()
     {
         StartRowIndex = 0,
         EndRowIndex = gv.Rows.Count - 2
     };
     for (int i = startCol; i < endCol + 1; i++)
     {
         if (i > 0)
         {
             List<RowArg> list = new List<RowArg>();
             //从第二列开始就要遍历前一列
             TraversesPrevCol(gv, i - 1, list);
             foreach (var item in list)
             {
                 MergeRowCol(gv, i, item.StartRowIndex, item.EndRowIndex);
             }
         }
         //合并开始列的行
         else
         {
             MergeRowCol(gv, i, init.StartRowIndex, init.EndRowIndex);
         }
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// 遍历前一列
 /// </summary>
 /// <param name="gv">GridView</param>
 /// <param name="prevCol">当前列的前一列</param>
 /// <param name="list"></param>
 private static void TraversesPrevCol(GridView gv, int prevCol, List<RowArg> list)
 {
     if (list == null)
     {
         list = new List<RowArg>();
     }
     RowArg ra = null;
     for (int i = 0; i < gv.Rows.Count; i++)
     {
         if (!gv.Rows[i].Cells[prevCol].Visible)
         {
             continue;
         }
         ra = new RowArg();
         ra.StartRowIndex = gv.Rows[i].RowIndex;
         ra.EndRowIndex = ra.StartRowIndex + gv.Rows[i].Cells[prevCol].RowSpan - 2;
         list.Add(ra);
     }
 }