找回密码
 立即注册

QQ登录

只需一步,快速开始

jiankeyan

中级会员

98

主题

268

帖子

796

积分

中级会员

积分
796
jiankeyan
中级会员   /  发表于:2022-9-21 14:16  /   查看:1569  /  回复:5
1金币
本帖最后由 jiankeyan 于 2022-9-21 14:33 编辑

代码是这样的:

image.png266412657.png
但是在表单中右键的时候报错,如下图:
image.png633221435.png
请问这个是怎么回事?

  1.     spread.commandManager().register("insertRowsBehind",
  2.         {
  3.             canUndo: true,
  4.             execute: function (context, options, isUndo) {
  5.                 var Commands = GC.Spread.Sheets.Commands;
  6.                 // 在此加cmd
  7.                 options.cmd = "insertRowsBehind";
  8.                 if (isUndo) {
  9.                     Commands.undoTransaction(context, options);
  10.                     return true;
  11.                 } else {
  12.                     Commands.startTransaction(context, options);
  13.                     var sheet = spread.getActiveSheet();
  14.                     var sels = sheet.getSelections();
  15.                     if (sels && sels.length > 0) {
  16.                         for (var i = 0; i < sels.length; i++) {
  17.                             var sel = sels[i];
  18.                             var row = sel.row;
  19.                             var rowCount = sel.rowCount;
  20.                             sheet.addRows(row + 1, rowCount);
  21.                         }
  22.                     }
  23.                     Commands.endTransaction(context, options);
  24.                     return true;
  25.                 }
  26.             }
  27.         });

  28.     // 获取右键菜单数组
  29.     var menuData = spread.contextMenu.menuData;

  30.     console.log(menuData);

  31.     // 定义一个在行头区域执行的右键菜单项
  32.     var insertRowsBehind = {
  33.         command: "insertRowsBehind",
  34.         text: "向后插入行",
  35.         // name只要不重复即可
  36.         name: "insertRowsBehind",
  37.         // 把自己定义好的icon class加在这里
  38.         iconClass: "gc-spread-custom-icon",
  39.         workArea: "viewport"
  40.     };

  41.     // 将自定义的项,加入到“插入行”(insertRows)之后
  42.     menuData.forEach(function (item, index) {
  43.         if (item && item.name === "contextMenuCut") {
  44.             menuData.splice(index + 1, 0, insertRowsBehind);
  45.         }
  46.     });
复制代码


最佳答案

查看完整内容

这边可以提供两个demo ,一个是在Spread中修改右键菜单,使单元格背景色变为红色。 另一个是在designer中,右击行标题,会出现’向下插入行‘的菜单

5 个回复

倒序浏览
最佳答案
最佳答案
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-9-21 14:16:04
来自 4#
这边可以提供两个demo ,一个是在Spread中修改右键菜单,使单元格背景色变为红色。
image.png716154479.png
另一个是在designer中,右击行标题,会出现’向下插入行‘的菜单
image.png772319335.png

spread自定义右键菜单.html

3.42 KB, 下载次数: 64

自定义右键菜单-向下插入行.html

4.32 KB, 下载次数: 71

回复 使用道具 举报
有点东西悬赏达人认证
初级会员   /  发表于:2022-9-21 17:53:57
2#
请问你是想在编辑器加右键菜单还是SpreadJS加右键菜单呢?两者添加的方式不同,因此不能混用。如果是想在编辑器加右键菜单,可以参考编辑器教程的“自定义右键菜单”部分例子
https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=87119

回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-21 18:15:05
3#
回复 使用道具 举报
jiankeyan
中级会员   /  发表于:2022-9-27 14:43:10
5#
有点东西 发表于 2022-9-21 17:53
请问你是想在编辑器加右键菜单还是SpreadJS加右键菜单呢?两者添加的方式不同,因此不能混用。如果是想在编 ...

多谢
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-27 17:31:02
6#
您客气了,那本帖就先结贴了,有问题欢迎另开新帖交流。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部