找回密码
 立即注册

QQ登录

只需一步,快速开始

condon

注册会员

2

主题

10

帖子

32

积分

注册会员

积分
32

活字格认证

最新发帖
condon
注册会员   /  发表于:2020-4-22 13:43  /   查看:7919  /  回复: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 不存在或已过期,无法取回密码  ,是怎么回事。
      

最佳答案

查看完整内容

您是想要点击不同单元格显示不同的菜单是吗?推荐按以下方式实现: 可以在弹出右键菜单的时候去判断: /* * 通过继承ContextMenu的方式自定义右键菜单逻辑 * */ function ContextMenu(){} ContextMenu.prototype = new GC.Spread.Sheets.ContextMenu.ContextMenu(spread); /* * onOpenMenu是右键菜单弹出前触发的事件,可以用来自定义右键菜单项 * i ...

13 个回复

倒序浏览
最佳答案
最佳答案
Fiooona
论坛元老   /  发表于:2020-4-22 13:43:43
来自 2#
您是想要点击不同单元格显示不同的菜单是吗?推荐按以下方式实现:
可以在弹出右键菜单的时候去判断:

        /*
        *  通过继承ContextMenu的方式自定义右键菜单逻辑
        * */
        function ContextMenu(){}
        ContextMenu.prototype = new GC.Spread.Sheets.ContextMenu.ContextMenu(spread);
        /*
        * onOpenMenu是右键菜单弹出前触发的事件,可以用来自定义右键菜单项
        * itemsDataForShown 是本次右键单击弹出的右键菜单项
        * */
        ContextMenu.prototype.onOpenMenu = function (menuData, itemsDataForShown, hitInfo, spread) {

                        for(let i=0; i<itemsDataForShown.length; i++){
                                var item = itemsDataForShown[i];
                                if(item.name === "gc.spread.hideRows"){
                                        item.disable = false;
                                }else if(item.name === "gc.spread.unhideRows"){
                                        item.disable = false;
                                }
                        }
        };

        // 将自定义右键菜单赋值给spread.contextMenu
        spread.contextMenu = new ContextMenu();


itemsDataForShown 是会显示出的右键菜单内容,可以hitInfo中判断点击到哪一行了,再修改itemsDataForShown

可以说下以前的账号我查一下
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
condon
注册会员   /  发表于:2020-4-22 15:56:40
3#
本帖最后由 condon 于 2020-4-22 16:01 编辑

非常感谢,但是我还是没试成功,我的代码在附件中,是react 页面,麻烦帮我看下,谢谢。

以前账号   大白菜

ReactSpreadJS.zip

5.27 KB, 下载次数: 367

回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2020-4-22 16:39:13
4#
密码重置为123456789 及时登录修改参考附件,如果还有问题,请再描述下您的需求及业务场景

13.0.7测试Demo.rar

1.88 MB, 下载次数: 373

组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
大白菜
中级会员   /  发表于:2020-4-22 17:05:45
5#
你好,你这种首次初始化就触发 加自定义菜单是可以的。我现在是要在加载完成后,再去修改,比如我的代码里面首次加载spread完成后,在spread.bind(GC.Spread.Sheets.Events.EnterCell,事件里面去重写自定义菜单。麻烦你Entercell 事件里面测试一下,谢谢。
回复 使用道具 举报
condon
注册会员   /  发表于:2020-4-22 17:24:04
6#
Fiooona 发表于 2020-4-22 16:39
密码重置为123456789 及时登录修改参考附件,如果还有问题,请再描述下您的需求及业务场景

你好,你这种首次初始化就触发 加自定义菜单是可以的。我现在是要在加载完成后,再去修改,比如我的代码里面首次加载spread完成后,在spread.bind(GC.Spread.Sheets.Events.EnterCell,事件里面去重写自定义菜单。麻烦你Entercell 事件里面测试一下,谢谢。
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2020-4-22 17:38:31
7#
为什么要在进入单元格重写自定义菜单?可以说下业务场景?
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
condon
注册会员   /  发表于:2020-4-22 17:43:24
8#
我这里会根据不同单元格数据,去支持不同右击菜单。确实需要这样业务。
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2020-4-22 17:54:18
9#
我上面给出的示例就是实现这样的功能,onOpenMenu 方法中可以获取点击的单元格,itemsDataForShown 是会显示出的右键菜单内容,可以hitInfo中判断点击到哪一行了,再修改itemsDataForShown中的内容就可以实现点击不同的单元格展示不同的菜单
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
大白菜
中级会员   /  发表于:2020-4-22 18:30:55
10#
上面代码,我放到 spread.bind(GC.Spread.Sheets.Events.EnterCell,事件里面无效   onOpenMenu 事件进不去,我 spread.contextMenu.menuData.push(opencommand); 的菜单也没显示出来,你能帮忙放到 EnterCell 里面去定义测试下吗,我这边测试很多次,都无效。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部