显示数据表格合并单元格万能版(包括模板列)

  

今天修改旧的项目,发现之前用到的显示数据表格合并单元格代码不适用于模板列。做了修改之后记录下来。
两种方法,第一种适用于所有情况,第二种适用于合并依据列非模板列。
两种方法如下:
方法一:

  
 <代码>///& lt; summary>///合并显示数据表格中某列相同信息的行(单元格)包含模板列根据ID=rowspanid的hiddenfield控件的值来合并需。要合并的单元格需加上这个控件。根据控件值合并。可以将控件放在某一列,也可以放在每一列。取值的时候分开就行。此方法适合任意列,特别是模板列无法取cell.text的时候///& lt;/summary>///& lt;参数name=" GridView1祝辞GridView///& lt;参数name=" cellNums祝辞合并第几列& lt;/param>///& lt;参数name=" rowspanid祝辞合并依据控件ID,这里用的hiddenfield控件。只需将ID=rowspanid的hiddenfield控件放在单元格里即可& lt;/param>
  公共静态孔隙GroupRows (int [] cellNums, GridView GridView1字符串rowspanid=癶frowspan”)
  {
  foreach (int cellNum cellNums)
  {
  int i=0, rowSpanNum=1;
  
  虽然(我& lt;GridView1.Rows。数- 1)
  {
  GridViewRow gvr=GridView1.Rows[我];
  
  + +我;我& lt;GridView1.Rows.Count;我+ +)
  {
  GridViewRow gvrNext=GridView1.Rows[我];
  如果(((HiddenField) gvr.Cells [cellNum] .FindControl (rowspanid))。值=https://www.yisu.com/zixun/=((HiddenField) gvrNext.Cells [cellNum] .FindControl (rowspanid)) Value)
  {
  gvrNext.Cells [cellNum]。可见=false;
  rowSpanNum + +;
  }
  其他的
  {
  gvr.Cells [cellNum]。行宽=rowSpanNum;
  rowSpanNum=1;
  打破;
  }
  
  如果(i==GridView1.Rows。数- 1)
  {
  gvr.Cells [cellNum]。行宽=rowSpanNum;
  }
  }
  }
  
  }
  }
   
  

方法二:

  
 <代码>///& lt; summary>///根据某一列合并其他列。依据的列不能是模板列,否则请用上一个方法↑。///& lt;/summary>///& lt;参数name=" GridView1祝辞GridView///& lt;参数name=" cellNums祝辞合并第几列,数组& lt;/param>///& lt;参数name=" byCellNum祝辞依据第几列& lt;/param>
  公共静态孔隙GroupRowsByOne (int, int [] cellNums GridView GridView1 byCellNum)
  {
  foreach (int cellNum cellNums)
  {
  int i=0, rowSpanNum=1;
  
  虽然(我& lt;GridView1.Rows。数- 1)
  {
  GridViewRow gvr=GridView1.Rows[我];
  
  + +我;我& lt;GridView1.Rows.Count;我+ +)
  {
  GridViewRow gvrNext=GridView1.Rows[我];//如果(((HiddenField) gvr.Cells [cellNum] .FindControl (rowspanid))。值=https://www.yisu.com/zixun/=((HiddenField) gvrNext.Cells [cellNum] .FindControl (rowspanid)) Value)
  如果(gvr.Cells [byCellNum]。文本==gvrNext.Cells [byCellNum]。Text)
  {
  gvrNext.Cells [cellNum]。可见=false;
  rowSpanNum + +;
  }
  其他的
  {
  gvr.Cells [cellNum]。行宽=rowSpanNum;
  rowSpanNum=1;
  打破;
  }
  
  如果(i==GridView1.Rows。数- 1)
  {
  gvr.Cells [cellNum]。行宽=rowSpanNum;
  }
  }
  }
  
  }
  } 

显示数据表格合并单元格万能版(包括模板列)