找回密码
 立即注册

QQ登录

只需一步,快速开始

RainYan

中级会员

50

主题

175

帖子

501

积分

中级会员

积分
501
RainYan
中级会员   /  发表于:2024-7-4 17:01  /   查看:2187  /  回复:19
30金币
image.png936463317.png 我看这个右键菜单分为几个区域的,行头右键菜单,列头等等,这个里面说的workArea,我打印出来没看到有呢 我用的是17.0.8版本的 我想自定义行头的右键菜单加一个自定义的操作项,还有就是那个点击选中行序号(1,2,3,4,5这个序号列),切换选中行的事件是啥呢 没找到有

最佳答案

查看完整内容

选中某个区域,最前位置的单元格背景色是白色的,而其他单元格背景色是灰色的,这个现象正常。在前述使用了CellClick事件的情况下,要统一选中行所有单元格的背景色,思路如下: 1. 从CellClick事件中的sheetArea参数为2时,即点击的是行头,此时工作表中已经选中了改行所有单元格形成选中区域; 2. 通过Worksheet:getSelections()获取当前选中区域的信息,可以了解到选中的列数; 3. 此时已经了解到了选中区域的行索引和跨越 ...

19 个回复

倒序浏览
最佳答案
最佳答案
eat_grape_5
高级会员   /  发表于:2024-7-4 17:01:33
来自 11#
RainYan 发表于 2024-7-5 10:42
为啥 我点击行头后获取到选中的区域 然后我去给选中区域加样式 用的setStyle 和 getRang().setStyle() 试 ...

选中某个区域,最前位置的单元格背景色是白色的,而其他单元格背景色是灰色的,这个现象正常。在前述使用了CellClick事件的情况下,要统一选中行所有单元格的背景色,思路如下:
1. 从CellClick事件中的sheetArea参数为2时,即点击的是行头,此时工作表中已经选中了改行所有单元格形成选中区域;
2. 通过Worksheet:getSelections()获取当前选中区域的信息,可以了解到选中的列数;
3. 此时已经了解到了选中区域的行索引和跨越列数,可通过Worksheet:getRange()获取区域,对区域调用setStyle()设置样式。

代码如下:
  1. sheet.unbind(GC.Spread.Sheets.Events.CellClick);
  2.     sheet.bind(GC.Spread.Sheets.Events.CellClick, function(e, args) {
  3.     if (args.sheetArea === 2) {
  4.         var selection = sheet.getSelections()[0];
  5.         var style = new GC.Spread.Sheets.Style();
  6.         style.backColor = "blue";
  7.         sheet.getRange(selection.row, 0, selection.rowCount, selection.colCount).setStyle(style);
  8.     }
  9.     });
复制代码

回复 使用道具 举报
eat_grape_5
高级会员   /  发表于:2024-7-4 17:18:18
2#
可以参考官方文档了解新增菜单选项的实现:https://demo.grapecity.com.cn/spreadjs/help/docs/faqs/contextMenu/insertrows
楼主所说的“点击选中行序号”指的是快速选中指定序号对应的行吗?
回复 使用道具 举报
RainYan
中级会员   /  发表于:2024-7-4 17:24:47
3#
企业微信截图_17200850611971.png964591064.png 点击这个序号的事件
回复 使用道具 举报
eat_grape_5
高级会员   /  发表于:2024-7-4 17:28:04
4#
RainYan 发表于 2024-7-4 17:24
点击这个序号的事件

那可以通过SelectionChanged和SelectionChanging事件监听,参考官方文档:
SelectionChanged:https://demo.grapecity.com.cn/sp ... ts#selectionchanged
SelectionChanging:https://demo.grapecity.com.cn/sp ... s#selectionchanging
回复 使用道具 举报
RainYan
中级会员   /  发表于:2024-7-4 17:36:31
5#
eat_grape_5 发表于 2024-7-4 17:28
那可以通过SelectionChanged和SelectionChanging事件监听,参考官方文档:
SelectionChanged:https://de ...

我看了哈 点击任意单元格都会触发 我只想点击这个某个行序号选中这行的时候触发, 有法实现吗 用这个的话是那这选中的区域去判断是否一行吗 是的话又咋个判断呢
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-5 09:15:43
6#
您好,为什么需要监听“切换选中行的事件”呢?具体想要实现的需求是什么?
回复 使用道具 举报
eat_grape_5
高级会员   /  发表于:2024-7-5 09:21:10
7#
RainYan 发表于 2024-7-4 17:36
我看了哈 点击任意单元格都会触发 我只想点击这个某个行序号选中这行的时候触发, 有法实现吗 用这个的话 ...

那就用CellClick事件,该事件被触发后记录了单元格所在区域,判断区域为行头时执行事件处理函数即可。如下动图右侧的控制台中展示了CellClick事件被触发时的区域类型。
点击单元格事件查看所在区域.gif
点击行序号其实也是在点击单元格,只是这个单元格所在的区域是行头,SpreadJS区域包括行头、列头、表角和视图区域。可参考官方API文档了解详情:https://demo.grapecity.com.cn/sp ... ad.Sheets.SheetArea
楼主看下这个方案是否能有效实现需求。
回复 使用道具 举报
RainYan
中级会员   /  发表于:2024-7-5 09:38:49
8#
Joestar.Xu 发表于 2024-7-5 09:15
您好,为什么需要监听“切换选中行的事件”呢?具体想要实现的需求是什么?

就是想点击的时候知道点击的行头,不知道有没有就问一下,点行头会默认选中当前行,就想着改哈选中行的样式
回复 使用道具 举报
RainYan
中级会员   /  发表于:2024-7-5 09:45:00
9#
eat_grape_5 发表于 2024-7-5 09:21
那就用CellClick事件,该事件被触发后记录了单元格所在区域,判断区域为行头时执行事件处理函数即可。如 ...

可以  非常感谢!
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部