Lynn.Dou 发表于 2021-5-10 11:41:43

SpreadJS V14 Update1 新特性 - 行为增强 - 表单保护时禁用展开和折叠分组

本帖最后由 Lynn.Dou 于 2021-5-31 09:23 编辑

在SpreadJS V14 Update1 之前的版本中,设置表单保护时,允许展开/折叠分组。

SpreadJS V14 Update1 中对表单保护行为做了增强,设置表单保护时,可以通过API控制是否禁用展开/折叠分组。

      -      当工作表受保护且protectOption的allowOutlineRows为false时,行组不能折叠和展开。
      -      当工作表受保护且protectOption的allowOutlineRows为true时,行组可以折叠和展开
      -      当工作表受保护且protectOption的allowOutlineColumns为false时,列组不能折叠和展开。
      -      当工作表受保护且protectOption的allowOutlineColumns为true时,列组可以折叠和展开。
      -      默认情况下,工作表受保护时,allowOutlineRows、allowOutlineColumns为false,也就是说禁止展开/折叠分组。

表单受保护且行列组禁止展开/折叠时,点击展开/折叠按钮,将会触发invalidOperation 事件。
在designer中表现为,弹出错误提示弹框:



示例代码:   var spread = new GC.Spread.Sheets.Workbook(DOC);
   var activeSheet = spread.getActiveSheet();
   activeSheet.suspendPaint();
   activeSheet.setRowCount(34);
   activeSheet.setValue(0,0,"Western");
   activeSheet.setValue(0,1,"Western");
   activeSheet.setValue(0,2,"Western");
   activeSheet.setValue(1,0,"A");
   activeSheet.setValue(1,1,"B");
   activeSheet.setValue(1,2,"C");
   activeSheet.setValue(2,0,"A");
   activeSheet.setValue(2,1,"B");
   activeSheet.setValue(2,2,"C");
   activeSheet.rowOutlines.group(0,2);
   activeSheet.columnOutlines.group(0,1);
   activeSheet.options.isProtected = true;
   sheet.options.protectionOptions.allowOutlineColumns= false;
   sheet.options.protectionOptions.allowOutlineRows= false;
   activeSheet.resumePaint();      
   spread.bind(Sheets.Events.InvalidOperation, (e, args) => {
       if(args.invalidType === GC.Spread.Sheets.InvalidOperationType.groupProtected){
         alert(args.message)
       }
   });




hjkl 发表于 2021-5-30 11:38:08

你好貌似没有起作用,附件是测试代码

Lynn.Dou 发表于 2021-5-31 09:25:53

您好,技术博客中API有误,感谢您的指出。
将代码修改为以下即可:
//activeSheet.options.protectionOptions.allowOperateOutlineColumn = true;
            activeSheet.options.protectionOptions.allowOutlineRows = true;
                        //activeSheet.options.protectionOptions.allowOperateOutlineRow = true;
            activeSheet.options.protectionOptions.allowOutlineColumns = true;具体您也可以参考学习指南:
https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/features/worksheet/protection/purejs

页: [1]
查看完整版本: SpreadJS V14 Update1 新特性 - 行为增强 - 表单保护时禁用展开和折叠分组