注意到您之前的图示中使用的是SpreadJS Designer,那就以Designer中隐藏右键菜单中的菜单选项为例。
右键菜单中每个选项对应有一个命令对象,命令对象中的visibleContext属性值是SpreadJS用于控制该命令对应的菜单选项是否可见的变量的名称。
一般情况下,不同菜单选项可能有一些关联关系,对应的visibleContext属性值中包含有相同变量名称,所以直接修改这些变量名称的取值并不可靠。
不过,我们可以在当前visibleContext属性值上通过逻辑与关系扩展控制变量,之后在Designer全局设置扩展的控制变量为true或false,即可作用于菜单选项是否可见。如下代码所示:
- var config = GC.Spread.Sheets.Designer.DefaultConfig;
- // 根据名称获取命令对象
- var cmd = GC.Spread.Sheets.Designer.getCommand('formatCells');
- // 自定义控制菜单选项命令是否可见
- cmd.visibleContext = '(' + cmd.visibleContext + ') && canFormatCells';
- config.commandMap = {};
- Object.assign(config.commandMap, {
- "formatCells": cmd
- });
- // 设置为false,隐藏选项;设置为true,显示选项
- designer.setData('canFormatCells', false);
- // 重新设置DefaultConfig对象,即对Designer重配置
- designer.setConfig(config);
复制代码
可以参考下如下链接中的帖子:
https://gcdn.grapecity.com.cn/showtopic-222283.html
|