找回密码
 立即注册

QQ登录

只需一步,快速开始

jackming

初级会员

41

主题

78

帖子

307

积分

初级会员

积分
307
jackming
初级会员   /  发表于:2019-12-12 18:20  /   查看:4610  /  回复:5
1金币
本帖最后由 jackming 于 2019-12-12 18:33 编辑

image.png409981994.png

我用
GC.Spread.Sheets.Events.CellClick监听,用new GC.Spread.Sheets.Style()设置颜色,
但是怎么处理选中一行,消除其他行颜色?或者有除了这种方式外,其他“active”更好的方案吗?

最佳答案

查看完整内容

参考下方代码 选中一个单元格 可以选择整行, 给选中的行加样式可以参考这个例子: https://demo.grapecity.com.cn/SpreadJS/cdn/extendedExample/#/demos/customTheme 改CSS这个类的样式即可:.gc-selection 按您的实现方式也是可以的,取消其他行的颜色可以给背景色设置为null ,

5 个回复

倒序浏览
最佳答案
最佳答案
Fiooona
论坛元老   /  发表于:2019-12-12 18:20:44
来自 2#
参考下方代码 选中一个单元格 可以选择整行,
  1.       
  2.          spread.bind(GC.Spread.Sheets.Events.CellClick,
  3.         function(e, args) {
  4.           var sheet = args.sheet,
  5.           row = args.row,
  6.           col = args.col;
  7.           sheet.clearSelection()
  8.           sheet.addSelection(row,-1,1, -1)
  9.         });
复制代码


给选中的行加样式可以参考这个例子:
https://demo.grapecity.com.cn/Sp ... #/demos/customTheme
改CSS这个类的样式即可:.gc-selection

按您的实现方式也是可以的,取消其他行的颜色可以给背景色设置为null ,
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
jackming
初级会员   /  发表于:2019-12-13 11:44:54
3#
Fiooona 发表于 2019-12-13 09:36
参考下方代码 选中一个单元格 可以选择整行,

使用您的方法已成功,感谢!另外再请问下,怎么根据某个内容,查找所在单元格的位置,行列?感谢
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2019-12-13 12:09:52
4#
可以看查找功能:
https://demo.grapecity.com.cn/sp ... basic-search/purejs

不过如果你的单元格的内容是通过模板编辑的,那么在创建这个模板的时候可以给这个单元格添加标签Tag, 然后找这个单元格的时候查找这个标签就可以了,
标签功能参考:
https://demo.grapecity.com.cn/sp ... i/tag-search/purejs
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
jackming
初级会员   /  发表于:2019-12-13 14:30:38
5#
Fiooona 发表于 2019-12-13 12:09
可以看查找功能:
https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/features/search/basic-sear ...
  1.       
  2.          spread.bind(GC.Spread.Sheets.Events.CellClick,
  3.         function(e, args) {
  4.           var sheet = args.sheet,
  5.           row = args.row,
  6.           col = args.col;
  7.           sheet.clearSelection()
  8.           sheet.addSelection(row,-1,1, -1)
  9.         });
复制代码


我发现使用了这个方法后,再输入数据,数据会放到第一行第一列的单元格里,不会放在点击的那个单元格里,怎么回事啊?
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2019-12-13 14:43:49
6#
改进了一下,clearSelection清除了所有的选中状态,再使用setActiveCell方法就好了:
  1.    spread.bind(GC.Spread.Sheets.Events.CellClick,
  2.         function(e, args) {
  3.           var sheet = args.sheet,
  4.           row = args.row,
  5.           col = args.col;
  6.           sheet.clearSelection()
  7.           sheet.setActiveCell(row, col);
  8.           sheet.addSelection(row,-1,1, -1)
  9.         });
复制代码
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部