找回密码
 立即注册

QQ登录

只需一步,快速开始

Margin

注册会员

6

主题

19

帖子

158

积分

注册会员

积分
158
Margin
注册会员   /  发表于:2019-7-8 17:28  /   查看:3279  /  回复:3
重置个别单元格DataValidator后sheet的所有DataValidator都失效了。

伪代码流程如下:
// 初始化validator
// 数字大小在0-10
const numValidator = DataValidation.createNumberValidator(between, 0, 10, false)
// 非空字符串
const strValidator = DataValidation.createTextLengthValidator(greaterThan, 0)


// 设置多个表头及列绑定字段
for () {
  sheet.addSpan()
  sheet.setValue()
  sheet.bindColumn()

}

// 所有行、第一、第二列设置validator
sheet.setDataValidator(-1, 0, -1, 1, strValidator)
sheet.setDataValidator(-1, 0, -1, 1, numValidator)

// 发起http请求,获取数据
async function getData() {
  const list = await dataService.getData()
  sheet.setDataSource(list)
  for (index) {
    item = list[index]
    // 某条数据的某个字段为某个值时,不校验此行数据,清空第一、第二列validator
    if (!item.shouldValidate) {
      sheet.setDataValidator(index, 0, -1, 1, null)
      sheet.setDataValidator(index, 0, -1, 1, null)

    }
    if (item.xx) {
      sheet.getCell(index, 1).backColor('red')
    }
  }
}

如上,初始化时给表格所有行设置了validator,获取到数据后,需要移除验证器,移除后,所有行所有列验证器都失效了。

3 个回复

倒序浏览
Fiooona
论坛元老   /  发表于:2019-7-8 18:05:13
沙发
按照您的描述未能复现您所说的问题,我这写了一个Demo,你可以看一下,如果有问题,可以在这个Demo上修改、复现你遇见的问题。

myValidator.zip

1.81 KB, 下载次数: 146

组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
Margin
注册会员   /  发表于:2019-7-9 14:46:30
板凳
Fiooona 发表于 2019-7-8 18:05
按照您的描述未能复现您所说的问题,我这写了一个Demo,你可以看一下,如果有问题,可以在这个Demo上修改、 ...

好的,谢谢。解决了。
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-7-9 16:00:16
地板
不客气,很高兴解决了问题,本帖结贴了~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部