找回密码
 立即注册

QQ登录

只需一步,快速开始

展云互联

注册会员

12

主题

50

帖子

150

积分

注册会员

积分
150
展云互联
注册会员   /  发表于:2021-9-17 18:40  /   查看:1654  /  回复:3
1金币
右击菜单选项我只想用复制、粘贴和删除其他的怎么删,试了几种方法都不行。
我看API里有个函数自定义菜单项的视图和结构的方法 试了一下报这个错。
image.png267681578.png


  function CustomMenuView() { }
                CustomMenuView.prototype = new GC.Spread.Sheets.ContextMenu.MenuView();
                CustomMenuView.prototype.createMenuItemElement = function (menuItemData) {
                    console.log(menuItemData)
                    var self = this;
                    if (menuItemData.name == "gc.spread.copy") {
                        menuItemData.text="复制"
                        var menuItemView = GC.Spread.Sheets.ContextMenu.MenuView.prototype.createMenuItemElement.call(self, menuItemData);
                        return menuItemView;
                    }
                    if (menuItemData.name == "gc.spread.cut") {
                        menuItemData.text="剪切"
                        var menuItemView = GC.Spread.Sheets.ContextMenu.MenuView.prototype.createMenuItemElement.call(self, menuItemData);
                        return menuItemView;
                    }
                    if (menuItemData.name == "gc.spread.pasteOptions") {
                        menuItemData.text="粘贴方式:"
                        var menuItemView = GC.Spread.Sheets.ContextMenu.MenuView.prototype.createMenuItemElement.call(self, menuItemData);
                        return menuItemView;
                    }
                    if (menuItemData.name == "gc.spread.clearContents") {
                        menuItemData.text="清空"
                        var menuItemView = GC.Spread.Sheets.ContextMenu.MenuView.prototype.createMenuItemElement.call(self, menuItemData);
                        return menuItemView;
                    }
                };
                spread.contextMenu.menuView = new CustomMenuView();
是不是不能这么写?还是有别的方法我没找到?
大佬帮忙看一下。


最佳答案

查看完整内容

您可以用下面的代码删除var menuData = spread.contextMenu.menuData; var newMenuData = []; menuData.forEach(function (item) { if(item){ if(item.name === "gc.spread.filter" || item.name === "gc.spread.sort" || item.name === "gc.spread.insertComment"){ return; } newMenuData.push(item); } }); spread.contextMenu.menuDat ...

3 个回复

倒序浏览
最佳答案
最佳答案
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-9-17 18:40:06
来自 2#
您可以用下面的代码删除var menuData = spread.contextMenu.menuData;

var newMenuData = [];

menuData.forEach(function (item) {
    if(item){
        if(item.name === "gc.spread.filter" ||
            item.name === "gc.spread.sort" ||
            item.name === "gc.spread.insertComment"){
            return;
        }
        newMenuData.push(item);
    }
});

spread.contextMenu.menuData = newMenuData;


有关自定义右键菜单更多信息可以参考这两篇文章
https://www.grapecity.com.cn/blo ... ht-click-menu-part1
https://www.grapecity.com.cn/blo ... ht-click-menu-part2
回复 使用道具 举报
展云互联
注册会员   /  发表于:2021-9-22 14:19:52
3#
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-9-22 14:22:06
4#

谢谢支持,本帖子的问题解决,这里就结帖了。       
如果您有新的问题,也欢迎创建新的求助帖。       
请记得设置最佳答案。       
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部