找回密码
 立即注册

QQ登录

只需一步,快速开始

Ellia.Duan SpreadJS 开发认证
超级版主   /  发表于:2023-8-24 09:23  /   查看:799  /  回复:0
本帖最后由 Ellia.Duan 于 2023-8-24 09:26 编辑

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

image.png10362547.png


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


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


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

  2.             let designerConfig = JSON.parse(JSON.stringify(GC.Spread.Sheets.Designer.DefaultConfig));
  3.             var newFun = GC.Spread.Sheets.Designer.getCommand('mergeCenter'); //mergeCenter
  4.             let enableContext = newFun.enableContext;
  5.          
  6.             //这里解决的思路是删除 !IsProtected
  7.             let result;
  8.             if (enableContext.indexOf("!IsProtected") > -1) {
  9.                 let index = enableContext.indexOf("!IsProtected");
  10.                 result = enableContext.substr(index + "!IsProtected".length + 3, enableContext.length);
  11.             }
  12.             newFun.enableContext = result
  13. designerConfig.commandMap = {
  14.                 "mergeCenter": newFun
  15.             }
  16.             designer.setConfig(designerConfig)
复制代码

执行上述代码后发现,表单保护状态下可以使用合并单元格按钮了,如下图所示
image.png313876342.png

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部