找回密码
 立即注册

QQ登录

只需一步,快速开始

Lynn.Dou 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-12-29 16:33  /   查看:2530  /  回复:0
本帖最后由 Lynn.Dou 于 2022-9-30 11:43 编辑

背景:
在设置表单保护之后,工具栏发生了变化,一些按钮变成了灰色-禁用状态。
image.png905435180.png
实际上除了工具栏,右键菜单也是如此:
image.png256049803.png
这一点也是与Excel保持一致的。
设置表单保护后就表示不希望用户再对此表单做出一些修改性的行为,
所以将工具栏和右键菜单的一些按钮禁用,最大限度的保证用户无法做出修改性行为。
但实际业务中,会有一些需求希望能放开工具栏按钮可供使用。

如下图,可以通过UI操作勾选操作项来实现。
image.png962325134.png

如果不想通过UI操作,并且希望只开放部分工具栏按钮呢?
例如,需求为:
    表单保护下工具栏 背景色、文本颜色按钮可用。
    表单保护下右键菜单项 剪切项 可用。
本篇文章就来带领大家学习如何实现。

步骤:
1、找到工具栏某按钮的commandName ( "backColor" "foreColor"),请参考下图:
  1. var config = GC.Spread.Sheets.Designer.DefaultConfig
  2. config.ribbon[0].buttonGroups[2]
复制代码
image.png369618224.png

2、修改相应command的enableContext值,并进行注册
  1. GC.Spread.Sheets.Designer.getCommand("backColor").enableContext = "test1";
  2.                         GC.Spread.Sheets.Designer.getCommand("foreColor").enableContext = "test2";
  3.                         GC.Spread.Sheets.Designer.getCommand("contextMenuCut").enableContext = "test3";

  4.                         var newFun1 = GC.Spread.Sheets.Designer.getCommand("backColor");
  5.                         var newFun2 = GC.Spread.Sheets.Designer.getCommand("foreColor");
  6.                         var newFun3 = GC.Spread.Sheets.Designer.getCommand("contextMenuCut");

  7.                         config.commandMap = {
  8.                                 "backColor": newFun1,
  9.                                 "foreColor": newFun2,
  10.                                 "contextMenuCut": newFun3,
  11.                         };
复制代码


3、初始化designer后,使用setData方法设置该修改值。
  1. var designer = new GC.Spread.Sheets.Designer.Designer(document.getElementById("gc-designer-container"), config);
  2.                         
  3.                         designer.setData("test1",true);
  4.                 designer.setData("test2",true);
  5.                         designer.setData("test3", true);
  6.                         designer.refresh();
复制代码
最终结果如下图:
image.png641862182.png
image.png767153014.png
完整代码请参考附件demo。




demo.html

3.17 KB, 下载次数: 92

0 个回复

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