请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

CanYou2
注册会员   /  发表于:2016-10-20 17:06  /   查看:3324  /  回复:4
本帖最后由 CanYou2 于 2016-10-20 17:06 编辑

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




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

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

4 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2016-10-20 17:29:05
沙发
你的GetMergeRange方法里判断的CellType是Cell。
如果是表头,就判断CellType是ColumnHeader,然后写代码逻辑。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
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
5#
CanYou2 发表于 2016-10-22 09:03
能不能给段示例代码参考下,我按这种方式试过,没有效果,原因是获取不到表头那一行

因为你GetDataDisplay里获取的就是单元格的值,而不是ColumnHeader的值。
首先需要返回ColumnHeader的值,创建新的方法:
  1. string GetColumnDataDisplay(C1FlexGrid grid, int r, int c)
  2.         {
  3.             return grid.ColumnHeaders[r, c].ToString();
  4.         }
复制代码

然后到GetMergedRange里去判断。
  1.    public CellRange GetMergedRange(C1FlexGrid grid, CellType cellType, CellRange rg)
  2.         {
  3. //其他代码逻辑
  4. //。。。。。。           
  5. if (cellType == CellType.ColumnHeader)
  6.             {
  7.                //这里调用GetColumnDataDisplay方法获取ColumnHeader上的值,按照需求做合并

  8.           }

  9.             // done
  10.             return rg;
  11.         }
复制代码

评分

参与人数 1满意度 +5 收起 理由
CanYou2 + 5 很给力!

查看全部评分

请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部