CanYou2 发表于 2016-10-20 17:06:10

C1FlexGrid如果实现复合表头和特定的单元格合并

本帖最后由 CanYou2 于 2016-10-20 17:06 编辑

用C1FlexGrid来显示数据、以下是我的实现方案:




这种方案只能合并单元格,无法合并表头

C1FlexGrid如何实现可以合并复合表头和特定的单元格

Alice 发表于 2016-10-20 17:29:05

你的GetMergeRange方法里判断的CellType是Cell。
如果是表头,就判断CellType是ColumnHeader,然后写代码逻辑。

CanYou2 发表于 2016-10-22 09:03:11

Alice 发表于 2016-10-20 17:29
你的GetMergeRange方法里判断的CellType是Cell。
如果是表头,就判断CellType是ColumnHeader,然后写代码 ...

能不能给段示例代码参考下,我按这种方式试过,没有效果,原因是获取不到表头那一行

CanYou2 发表于 2016-10-22 09:03:13

Alice 发表于 2016-10-20 17:29
你的GetMergeRange方法里判断的CellType是Cell。
如果是表头,就判断CellType是ColumnHeader,然后写代码 ...

能不能给段示例代码参考下,我按这种方式试过,没有效果,原因是获取不到表头那一行

Alice 发表于 2016-10-24 15:08:57

CanYou2 发表于 2016-10-22 09:03
能不能给段示例代码参考下,我按这种方式试过,没有效果,原因是获取不到表头那一行

因为你GetDataDisplay里获取的就是单元格的值,而不是ColumnHeader的值。
首先需要返回ColumnHeader的值,创建新的方法:
string GetColumnDataDisplay(C1FlexGrid grid, int r, int c)
      {
            return grid.ColumnHeaders.ToString();
      }
然后到GetMergedRange里去判断。
   public CellRange GetMergedRange(C1FlexGrid grid, CellType cellType, CellRange rg)
      {
//其他代码逻辑
//。。。。。。         
if (cellType == CellType.ColumnHeader)
            {
               //这里调用GetColumnDataDisplay方法获取ColumnHeader上的值,按照需求做合并

          }

            // done
            return rg;
      }
页: [1]
查看完整版本: C1FlexGrid如果实现复合表头和特定的单元格合并