找回密码
 立即注册

QQ登录

只需一步,快速开始

热点科技

初级会员

24

主题

56

帖子

200

积分

初级会员

积分
200
热点科技
初级会员   /  发表于:2022-11-9 16:10  /   查看:1040  /  回复:3
1金币
我找到自定义右键菜单向后新增一行的文档,写了以后发现用SpreadSheets渲染的时候是有效的,但是我的场景需要用到设计器Designer,这种情况下 就没有效果了,请问有解决办法吗?
  1. function addItemIntoContextMenu(spread) {

  2.         /*

  3.         *  定义一个命令,作为右键菜单项的执行逻辑

  4.         * */

  5.         spread.commandManager().register("insertRowsBehind",

  6.             {

  7.                 canUndo: true,

  8.                 execute: function (context, options, isUndo) {

  9.                     var Commands = GC.Spread.Sheets.Commands;

  10.                     // 在此加cmd

  11.                     options.cmd = "insertRowsBehind";

  12.                     if (isUndo) {

  13.                         Commands.undoTransaction(context, options);

  14.                         return true;

  15.                     } else {

  16.                         Commands.startTransaction(context, options);

  17.                         var sheet = spread.getActiveSheet();

  18.                         var sels = sheet.getSelections();

  19.                         if(sels && sels.length > 0){

  20.                             for(var i=0; i<sels.length; i++ ){

  21.                                 var sel = sels[i];

  22.                                 var row = sel.row;

  23.                                 var rowCount = sel.rowCount;

  24.                                 sheet.addRows(row+1, rowCount);

  25.                             }

  26.                         }

  27.                         Commands.endTransaction(context, options);

  28.                         return true;

  29.                     }

  30.                 }

  31.             });



  32.         // 获取右键菜单数组

  33.         var menuData = spread.contextMenu.menuData;



  34.         console.log(menuData);



  35.         // 定义一个在行头区域执行的右键菜单项

  36.         var insertRowsBehind = {

  37.             command: "insertRowsBehind",

  38.             text: "向后插入行",

  39.             // name只要不重复即可

  40.             name: "insertRowsBehind",

  41.             // 把自己定义好的icon class加在这里

  42.             iconClass:"gc-spread-custom-icon",

  43.             workArea: "rowHeader"

  44.         };



  45.         // 将自定义的项,加入到“插入行”(insertRows)之后

  46.         menuData.forEach(function (item, index) {

  47.             if(item && item.name === "gc.spread.insertRows"){

  48.                 menuData.splice(index+1, 0, insertRowsBehind);

  49.             }

  50.         });

  51.     }
复制代码


最佳答案

查看完整内容

您好, designer自定义右键菜单与SpreadJS有所不同,关于您的需求,可以参考下方链接文章: https://gcdn.grapecity.com.cn/fo ... 35288&fromuid=59119

3 个回复

倒序浏览
最佳答案
最佳答案
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-9 16:10:48
来自 2#
您好,
designer自定义右键菜单与SpreadJS有所不同,关于您的需求,可以参考下方链接文章:
https://gcdn.grapecity.com.cn/fo ... 35288&fromuid=59119
回复 使用道具 举报
热点科技
初级会员   /  发表于:2022-11-9 17:41:01
3#
Lynn.Dou 发表于 2022-11-9 16:56
您好,
designer自定义右键菜单与SpreadJS有所不同,关于您的需求,可以参考下方链接文章:
https://gcdn ...

谢谢,参考你发的文章,问题已解决
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-9 17:42:54
4#
热点科技 发表于 2022-11-9 17:41
谢谢,参考你发的文章,问题已解决

问题解决了就好,那本帖就先结贴了,有问题欢迎另开新帖交流。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部