找回密码
 立即注册

QQ登录

只需一步,快速开始

condon

注册会员

2

主题

10

帖子

32

积分

注册会员

积分
32

活字格认证

最新发帖
condon
注册会员   /  发表于:2020-4-22 13:43  /   查看:9281  /  回复:13
1金币
本帖最后由 condon 于 2020-4-22 14:09 编辑

  你好,请问下右击上下文问题。 我在 首次初始化之前按 spread.contextMenu.menuData.push   方法能加入我自定义事件。但是,我现在是想在spread 加载完成后,我点击了单元格,(现通过GC.Spread.Sheets.Events.EnterCell) 来控制右击上下文菜单,
我在EnterCell 事件里面用 contextMenu.menuData  注册自定义事件后,表格上的右击菜单无变化,我用 spread.repaint(); 也无效果。
我的疑问:  spread 构造完成后,在用contextMenu.menuData  增加事件,是否支持。
           如果支持,可能是我写的不对,怎么刷新增加后的spread  或者我的右击菜单。




谢谢。另外,我有个账号,忘记密码,邮箱收到取回密码邮件后  您所用的 ID 不存在或已过期,无法取回密码  ,是怎么回事。
      

13 个回复

正序浏览
Fiooona
论坛元老   /  发表于:2020-4-23 18:16:45
14#
解决了就结帖拉~ 有问题欢迎开新帖交流
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
condon
注册会员   /  发表于:2020-4-23 09:33:30
13#
本帖最后由 condon 于 2020-4-23 15:14 编辑
Fiooona 发表于 2020-4-23 08:30
按照您描述的业务场景,建议是提前写好不同的菜单,右键单元格时自动会调用onOpenMenu方法,此时在对要展示 ...

感谢。附件有可运行的代码示例。先有2个问题:
1 是  ContextMenu.prototype.onOpenMenu 这个事件我怎么测试右击,都不会进来
2 我发现 在 EnterCell  事件内部push 菜单是没问题的, 我在这个事件内部调用方法添加,就没作用了。具体示例代码内已经注明,望帮忙解决。谢谢。




-----重构的方法,没有注册 :   spread.contextMenu = new ContextMenu();  少这个代码,忘记你的文字回复,看你的demo文件内是没这句。忘了加了。加了这句就可以了。谢谢。问题解决。

js.zip

2.19 MB, 下载次数: 621

回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2020-4-23 08:30:01
12#
按照您描述的业务场景,建议是提前写好不同的菜单,右键单元格时自动会调用onOpenMenu方法,此时在对要展示的菜单进行调整,如果对您的业务场景理解有误,可以在进行补充,并提供能复现问题可运行的代码。
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
condon
注册会员   /  发表于:2020-4-22 18:32:51
11#
本帖最后由 condon 于 2020-4-22 18:35 编辑
Fiooona 发表于 2020-4-22 17:54
我上面给出的示例就是实现这样的功能,onOpenMenu 方法中可以获取点击的单元格,itemsDataForShown 是会显 ...

上面代码是在   spread.fromJSON(obj,jsonOptions);  之前操作的,我放到 spread 初始化后  在 spread.bind(GC.Spread.Sheets.Events.EnterCell,事件触发时无效   onOpenMenu 事件进不去,我 spread.contextMenu.menuData.push(opencommand); 的菜单也没显示出来,你能帮忙放到 EnterCell 里面去定义测试下吗,我这边测试很多次,都无效。
回复 使用道具 举报
大白菜
中级会员   /  发表于:2020-4-22 18:30:55
10#
上面代码,我放到 spread.bind(GC.Spread.Sheets.Events.EnterCell,事件里面无效   onOpenMenu 事件进不去,我 spread.contextMenu.menuData.push(opencommand); 的菜单也没显示出来,你能帮忙放到 EnterCell 里面去定义测试下吗,我这边测试很多次,都无效。
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2020-4-22 17:54:18
9#
我上面给出的示例就是实现这样的功能,onOpenMenu 方法中可以获取点击的单元格,itemsDataForShown 是会显示出的右键菜单内容,可以hitInfo中判断点击到哪一行了,再修改itemsDataForShown中的内容就可以实现点击不同的单元格展示不同的菜单
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
condon
注册会员   /  发表于:2020-4-22 17:43:24
8#
我这里会根据不同单元格数据,去支持不同右击菜单。确实需要这样业务。
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2020-4-22 17:38:31
7#
为什么要在进入单元格重写自定义菜单?可以说下业务场景?
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
condon
注册会员   /  发表于:2020-4-22 17:24:04
6#
Fiooona 发表于 2020-4-22 16:39
密码重置为123456789 及时登录修改参考附件,如果还有问题,请再描述下您的需求及业务场景

你好,你这种首次初始化就触发 加自定义菜单是可以的。我现在是要在加载完成后,再去修改,比如我的代码里面首次加载spread完成后,在spread.bind(GC.Spread.Sheets.Events.EnterCell,事件里面去重写自定义菜单。麻烦你Entercell 事件里面测试一下,谢谢。
回复 使用道具 举报
大白菜
中级会员   /  发表于:2020-4-22 17:05:45
5#
你好,你这种首次初始化就触发 加自定义菜单是可以的。我现在是要在加载完成后,再去修改,比如我的代码里面首次加载spread完成后,在spread.bind(GC.Spread.Sheets.Events.EnterCell,事件里面去重写自定义菜单。麻烦你Entercell 事件里面测试一下,谢谢。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部