找回密码
 立即注册

QQ登录

只需一步,快速开始

湖南大商帮

初级会员

46

主题

155

帖子

467

积分

初级会员

积分
467
湖南大商帮
初级会员   /  发表于:2021-6-17 16:12  /   查看:1945  /  回复:5
本帖最后由 湖南大商帮 于 2021-6-17 16:38 编辑

比如,我表单已经保护了,我需要第3列,5列取消锁定,而且新增行的时候,新增的列也是默认取消锁定的,如果用range去设置,对于新增的行是没有效果的,我感觉在针对指定的整列默认属性设置方面,spread还是缺乏灵活性,总是需要人工代码去干预。

还有比如,我有的列是要求左对齐,有的列要求右对齐,新增行的时候,新增的列也是要求自动继承上面的列的对齐属性,我只是拿对齐属性这一个玩意来打比方,未来可能还有更多的需要针对整个列的设置属性相关的

5 个回复

倒序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-6-17 16:34:22
沙发
您好,
我理解的您的需求是:
设置表单保护,允许第3、5列可以编辑,并且新增的列也可以编辑。

您试下以下方案:
设置默认全局样式locked为false
除第3、5列外,其余列设置locked为true。
此时新增的列是可以编辑的。(locked为false)
示例代码:
  1. var defaultStyle = new GC.Spread.Sheets.Style();
  2. defaultStyle.locked = false;
  3. sheet.setDefaultStyle(defaultStyle, GC.Spread.Sheets.SheetArea.viewport);

  4. var style = new GC.Spread.Sheets.Style();
  5. style.locked = true;
  6. style.backColor = "pink";
  7. var colCount = sheet.getColumnCount();
  8. for(var i=0; i<colCount; i++) {
  9.     if(i != 2 && i != 8) {
  10.         sheet.setStyle(-1, i, style);
  11.     }
  12. }
复制代码


回复 使用道具 举报
湖南大商帮
初级会员   /  发表于:2021-6-17 16:44:22
板凳
谢谢回复,我的意思是,能不能有一个针对列的定义属性的地方,类似在绑定列的方法的时候,期望是:
colInfos=[{name:'a',size:100,hAlign:'right',locked:false}]
sheet.bindColumns(this.colInfos)
这样就只需要定义列的属性就可以了,不用写代码循环之类的,毕竟我的项目需要定义的地方太多了
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-6-17 17:05:24
地板
目前没有您代码所示的接口,
locked属性是定义在style中的,
初始化或者修改locked都是通过修改单元格或行列的style实现。

回复 使用道具 举报
湖南大商帮
初级会员   /  发表于:2021-6-17 17:17:43
5#
好吧,那类似于定义列的对齐属性,就不能放在colInfo里面一起,绑定列的时候就给一次性指定好吗
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-6-17 17:41:41
6#
目前没有这样的接口,建议您参考第一个回答中的设置方案,
根据业务需要手动设置。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部