找回密码
 立即注册

QQ登录

只需一步,快速开始

wutao@digiwin
金牌服务用户   /  发表于:2022-7-13 10:36  /   查看:1353  /  回复:9
1金币
image.png420193786.png 当多次点击之后,列被选中状态背景色逐渐变深 image.png158131407.png

最佳答案

查看完整内容

是的,上面的代码中 info.sheetArea==GC.Spread.Sheets.SheetArea.colHeader 判断了点击的是列头区域,然后通过info.col获取到列索引,对整列设置背景色 下面是CellClick的说明,供参考 https://demo.grapecity.com.cn/spreadjs/help/api/GC.Spread.Sheets.Worksheet.html#event:CellClick

9 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-7-13 10:36:49
来自 5#
是的,上面的代码中
info.sheetArea==GC.Spread.Sheets.SheetArea.colHeader
判断了点击的是列头区域,然后通过info.col获取到列索引,对整列设置背景色

下面是CellClick的说明,供参考
https://demo.grapecity.com.cn/sp ... tml#event:CellClick
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-7-13 17:39:22
3#
本帖最后由 Richard.Ma 于 2022-7-13 18:00 编辑

可以在CellClick中判断点击的是否是列头,然后设置代码,这里你要是要多次加深的话,需要先获取原来的颜色,然后根据原色计算得到新颜色后再进行设置

  1. sheet.bind(GC.Spread.Sheets.Events.CellClick, function (e, info) {
  2.         if(info.sheetArea==GC.Spread.Sheets.SheetArea.colHeader){
  3.             var color=sheet.getRange(-1,info.col,-1,1).backColor();
  4.             if(color){
  5.                 sheet.getRange(-1,info.col,-1,1).backColor("green");

  6.             }
  7.             else{
  8.                 sheet.getRange(-1,info.col,-1,1).backColor("red");
  9.             }
  10.             
  11.         }
  12. });
复制代码
回复 使用道具 举报
wutao@digiwin
金牌服务用户   /  发表于:2022-7-13 18:11:55
4#
Richard.Ma 发表于 2022-7-13 17:39
可以在CellClick中判断点击的是否是列头,然后设置代码,这里你要是要多次加深的话,需要先获取原来的颜色 ...

我不需要多次点击颜色变深的效果,是需要在点击列头的时候去设置整列的背景色吗?
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-7-29 16:40:31
6#
请问楼主参考上述方案问题解决了吗?
如果仍未解决,可以将不满足需求的原因再详细描述下,以便这边进一步调研。
回复 使用道具 举报
wutao@digiwin
金牌服务用户   /  发表于:2022-8-3 18:01:40
7#
本帖最后由 wutao@digiwin 于 2022-8-3 18:04 编辑
Lynn.Dou 发表于 2022-7-29 16:40
请问楼主参考上述方案问题解决了吗?
如果仍未解决,可以将不满足需求的原因再详细描述下,以便这边进一步 ...

上述方案 在获取到颜色重新设置的时候,代码不生效
回复 使用道具 举报
wutao@digiwin
金牌服务用户   /  发表于:2022-8-3 18:01:58
8#
本帖最后由 wutao@digiwin 于 2022-8-3 18:05 编辑

可以获取到点击的单元格行列,但是在绑定的点击事件里面去设置列头的背景色是不成功的
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-8-3 18:13:52
9#
可以看一下这个在线示例,你那边如果还是有问题的话,可以上传一个重现问题的demo

https://jscodemine.grapecity.com/sample/hjXQ4PKWU0q7SmnctAWp1g/
回复 使用道具 举报
wutao@digiwin
金牌服务用户   /  发表于:2022-10-28 16:55:17
10#
Richard.Ma 发表于 2022-7-13 17:39
可以在CellClick中判断点击的是否是列头,然后设置代码,这里你要是要多次加深的话,需要先获取原来的颜色 ...

想问一下,如果设置表头的颜色呢?,代码里是选中列除去表头部分的设置
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-28 18:21:30
11#
本帖最后由 Richard.Ma 于 2022-10-28 18:35 编辑

你是说通过代码直接修改所有列的列头(表头)的颜色吗,可以参考下面的代码
  1. sheet.getRange(0,-1,1,-1,        GC.Spread.Sheets.SheetArea.colHeader).backColor('red')
复制代码


我看到你还发了另一个帖子,是要设置“选中”状态下列头的样式,如果是这个需求的话,那参考里面我给你的回复就行,设置对应的主题样式文件
https://gcdn.grapecity.com.cn/fo ... read&tid=156367


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部