找回密码
 立即注册

QQ登录

只需一步,快速开始

云智装
金牌服务用户   /  发表于:2021-11-17 10:22  /   查看:2277  /  回复:6
1金币
image.png572766418.png
如上图,怎么动态控制(例如:1行可以插入、2行不可以插入)是否可以 复制、剪切、插入、清除等按钮的操作呢,
image.png270853881.png

最佳答案

查看完整内容

您好,可以通过重写onOpenMenu来控制右键菜单的菜单项显示。 示例代码: 具体可以参考附件demo

6 个回复

倒序浏览
最佳答案
最佳答案
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-11-17 10:22:05
来自 2#
本帖最后由 Lynn.Dou 于 2021-11-17 13:50 编辑

您好,可以通过重写onOpenMenu来控制右键菜单的菜单项显示。
示例代码:
  1. function MyContextMenu() {}
  2.             MyContextMenu.prototype = new GC.Spread.Sheets.ContextMenu.ContextMenu(spread);
  3.             MyContextMenu.prototype.onOpenMenu = function (menuData, itemsDataForShown, hitInfo, spread) {
  4.                 console.log(hitInfo);
  5.                 console.log(itemsDataForShown);
  6.                 if(hitInfo.worksheetHitInfo) {
  7.                     var row = hitInfo.worksheetHitInfo.row;
  8.                     // 如果为第二行,则不显示复制项
  9.                     if(row == 1) {
  10.                         itemsDataForShown.forEach(function (item, index) {
  11.                             if (item && item.name === "gc.spread.copy") {
  12.                                 itemsDataForShown.splice(index, 1);
  13.                             }
  14.                         });
  15.                     }
  16.                 }

  17.             };
  18.             var contextMenu = new MyContextMenu();
  19.             spread.contextMenu = contextMenu;
复制代码

具体可以参考附件demo


右键菜单-根据行控制显示菜单项.html

3.61 KB, 下载次数: 61

回复 使用道具 举报
云智装
金牌服务用户   /  发表于:2021-11-17 12:05:57
3#
Lynn.Dou 发表于 2021-11-17 11:28
您好,可以通过重写onOpenMenu来控制右键菜单的菜单项显示。
示例代码:
具体可以参考附件demo

使用react的hook写法该怎么写呢,
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-11-17 12:18:28
4#
在react中使用SpreadJS时,在初始化spread后,后续操作使用的是js代码。
您所说的hook写法这边不熟悉,不确定是否可行,需要您实际测试下。

您可以参考下 学习指南 react的示例demo。
image.png932716979.png
image.png360614928.png

回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-11-17 13:48:35
5#
上述代码不完整,已在原回答基础上做了更改,请以最新代码为准。
回复 使用道具 举报
云智装
金牌服务用户   /  发表于:2021-11-17 14:36:07
6#
Lynn.Dou 发表于 2021-11-17 12:18
在react中使用SpreadJS时,在初始化spread后,后续操作使用的是js代码。
您所说的hook写法这边不熟悉,不 ...

已解决
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-11-17 14:38:52
7#
好的,那本贴就先结贴了,有问题欢迎另开新帖交流。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部