找回密码
 立即注册

QQ登录

只需一步,快速开始

uioae

注册会员

10

主题

35

帖子

119

积分

注册会员

积分
119
uioae
注册会员   /  发表于:2021-6-1 17:28  /   查看:2673  /  回复:9
image.png665095519.png

9 个回复

倒序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-1 17:34:47
沙发
您可以参考这个demo利用数据验证去校验数据,对于不通过的数据验证会有模态窗弹出提示。
https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=82877

同样,控件本身是不具有弹窗功能的,如您是自定义的校验,也可以参考附件的思路弹出提示。
回复 使用道具 举报
uioae
注册会员   /  发表于:2021-6-1 18:29:50
板凳
image.png349557189.png

像这种, 弹框不太适用我的场景, 移入提示 这种 需要怎么弄?
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-2 08:36:59
地板
uioae 发表于 2021-6-1 18:29
像这种, 弹框不太适用我的场景, 移入提示 这种 需要怎么弄?

可以参考这个demo,利自定义单元格实现
https://demo.grapecity.com.cn/Sp ... ple/#/demos/tipCell
回复 使用道具 举报
uioae
注册会员   /  发表于:2021-6-2 08:56:48
5#
Derrick.Jiao 发表于 2021-6-2 08:36
可以参考这个demo,利自定义单元格实现
https://demo.grapecity.com.cn/SpreadJS/cdn/extendedExample/# ...

想用showInputMessage 的方法, 就是不知道写哪里比较好, 有什么好的方式
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-2 09:00:33
6#
uioae 发表于 2021-6-2 08:56
想用showInputMessage 的方法, 就是不知道写哪里比较好, 有什么好的方式

可以参考这个demo,添加指定的数据验证
https://demo.grapecity.com.cn/sp ... tom-data-validator#

例如
spread.options.highlightInvalidData = true;
var dv = GC.Spread.Sheets.DataValidation.createNumberValidator(GC.Spread.Sheets.ConditionalFormatting.ComparisonOperators.between, "5", "20", true);
dv.showInputMessage(true);
dv.inputMessage("Value must be between 5 and 20.");
dv.inputTitle("tip");
activeSheet.setDataValidator(1, 1, 1,1,dv,GC.Spread.Sheets.SheetArea.viewport);
回复 使用道具 举报
uioae
注册会员   /  发表于:2021-6-2 09:04:53
7#
Derrick.Jiao 发表于 2021-6-2 09:00
可以参考这个demo,添加指定的数据验证
https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/feat ...

这个只在校验错误的时候   showInputMessage 为true, 正确的时候是false, 这个逻辑怎么实现?
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-2 09:44:43
8#
uioae 发表于 2021-6-2 09:04
这个只在校验错误的时候   showInputMessage 为true, 正确的时候是false, 这个逻辑怎么实现?

可以参考下面的代码

spread.options.highlightInvalidData = true;
var dv = GC.Spread.Sheets.DataValidation.createNumberValidator(GC.Spread.Sheets.ConditionalFormatting.ComparisonOperators.between, "5", "20", true);
dv.showInputMessage(false);
dv.inputMessage("Value must be between 5 and 20.");
dv.inputTitle("tip");
sheet.setDataValidator(1, 1, 1,1,dv,GC.Spread.Sheets.SheetArea.viewport);

sheet.bind(GC.Spread.Sheets.Events.ValidationError, function(e, args) {
       args.validator._ps.showInputMessage = true;
    });

sheet.bind(GC.Spread.Sheets.Events.ValueChanged, function (e, info) {
       if(sheet.isValid(info.row, info.col,info.newValue)){
        sheet.getCell(info.row, info.col).validator()._ps.showInputMessage = false;
    }
});



回复 使用道具 举报
uioae
注册会员   /  发表于:2021-6-2 09:56:39
9#
Derrick.Jiao 发表于 2021-6-2 09:44
可以参考下面的代码

spread.options.highlightInvalidData = true;

谢谢, 我明白了
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-2 09:59:28
10#
uioae 发表于 2021-6-2 09:56
谢谢, 我明白了

不用客气,有新问题欢迎开新帖交流~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部