Ellia.Duan 发表于 2023-8-24 09:23:06

如何在表单保护状态下取消禁用菜单栏状态

本帖最后由 Ellia.Duan 于 2023-8-24 09:26 编辑

大家发现,在Designer中,如果设置表单保护后,发现有一部分菜单栏是禁用状态。




例如,这时候如果想要取消合并单元格这个菜单栏的禁用状态,可以按照下面的步骤进行。
首先在控制台打印GC.Spread.Sheets.Designer.DefaultConfig 找到ribbon参数,一次打开“打开”,找到合并单元的命令,如下图所示,发现是“mergeCenter”



这时候在控制台打印GC.Spread.Sheets.Designer.getCommand('mergeCenter').enableContext 获取'mergeCenter'这个命令的enableContext 属性,结果如下:



发现有一个!IsProtected 其意思是如果不是表单保护,就可以使用mergeCenter 。
那么如果想要在表单保护状态下使用mergeCenter ,做法就是删除这个!IsProtected
具体代码如下
var designer = new GC.Spread.Sheets.Designer.Designer(document.getElementById("designerHost"));

            let designerConfig = JSON.parse(JSON.stringify(GC.Spread.Sheets.Designer.DefaultConfig));
            var newFun = GC.Spread.Sheets.Designer.getCommand('mergeCenter'); //mergeCenter
            let enableContext = newFun.enableContext;
         
            //这里解决的思路是删除 !IsProtected
            let result;
            if (enableContext.indexOf("!IsProtected") > -1) {
                let index = enableContext.indexOf("!IsProtected");
                result = enableContext.substr(index + "!IsProtected".length + 3, enableContext.length);
            }
            newFun.enableContext = result
designerConfig.commandMap = {
                "mergeCenter": newFun
            }
            designer.setConfig(designerConfig)
执行上述代码后发现,表单保护状态下可以使用合并单元格按钮了,如下图所示


页: [1]
查看完整版本: 如何在表单保护状态下取消禁用菜单栏状态