自定义右键菜单——根据条件禁用
本帖最后由 Derrick.Jiao 于 2021-7-23 11:08 编辑自定义菜单是一个很实用的功能,通过自定义菜单我们可以实现许多不同的需求,本次的教程就是利用通过对自定义菜单的讲解,实现一个根据表单保护的状态来是否禁用右键菜单项。我们可以重写onOpenMenu方法,来实现在命令执行时提供更多的选项
相信对禁用指定菜单都不陌生,通过下面的代码可以实现禁用某一项的右键菜单,其原理就是找到指定名称的右键菜单,然后给一个右键菜单对象添加disable属性
function ContextMenu() { }
ContextMenu.prototype = new GC.Spread.Sheets.ContextMenu.ContextMenu(spread);
ContextMenu.prototype.onOpenMenu = function (menuData, itemsDataForShown, hitInfo, spread) {
for (let i = 0; i < itemsDataForShown.length; i++) {
var item = itemsDataForShown;
if (item.name === "gc.spread.cut") {
item.disable = true;
}
}
};
spread.contextMenu = new ContextMenu();
同理,我们只需稍微改造一下上面的代码,添加一个if语句进行判断就能根据是否表单保护禁止右键菜单的指定项。
function ContextMenu() { }
ContextMenu.prototype = new GC.Spread.Sheets.ContextMenu.ContextMenu(spread);
ContextMenu.prototype.onOpenMenu = function (menuData, itemsDataForShown, hitInfo, spread) {
if(sheet.options.isProtected === true) {
for (let i = 0; i < itemsDataForShown.length; i++) {
var item = itemsDataForShown;
if (item.name === "markWithRedBg") {
item.disable = true;
}
}
}
};
spread.contextMenu = new ContextMenu();
下载附件即可查看完整的demo,附件通过自定义的右键菜单根据表单保护的状态,切换是否可用。
页:
[1]