找回密码
 立即注册

QQ登录

只需一步,快速开始

liulichao

注册会员

8

主题

24

帖子

78

积分

注册会员

积分
78

活字格认证

QQ

[已处理] 验证问题

liulichao
注册会员   /  发表于:2015-9-8 08:33  /   查看:4454  /  回复:6
验证时需要ajax实时获取多个值与单元值进行对比验证,控件是否支持这种验证?如果支持能给个验证的事例么?

6 个回复

倒序浏览
frank.zhang
社区贡献组   /  发表于:2015-9-8 11:25:00
沙发
您好
可以在一个事件当中,创建这个效验:
  1.         $("#button1").click(function() {
  2.                                                 sheet.setValue(0, 0, 4);
  3.                                                 sheet.setValue(0, 1, 5);
  4.                                                 sheet.setValue(0, 2, 6);
  5.                                                 spread.highlightInvalidData(true);
  6.                                                 var dv = GcSpread.Sheets.DefaultDataValidator.createListValidator("4,5,6");
  7.             dv.showInputMessage = true;
  8.             dv.inputMessage = "Value must be 1, 2 or 3.";
  9.             dv.inputTitle = "tip";
  10.             sheet.setDataValidator(1, 1, dv);
  11.             var validList = sheet.getDataValidator(1, 1).getValidList(sheet, 1, 1);
  12.         });
复制代码

需要确认的是什么时候进行验证?
回复 使用道具 举报
liulichao
注册会员   /  发表于:2015-9-8 11:42:00
板凳
需要录入数据鼠标离开时就验证
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-9-8 13:37:00
地板
您好,
您可以在LeaveCell这个事件里面实现,可以参考:
  1.                     sheet.bind(GcSpread.Sheets.Events.LeaveCell, function (sender, args) {
  2.                                                 sheet.setValue(0, 0, 4);
  3.                                                 sheet.setValue(0, 1, 5);
  4.                                                 sheet.setValue(0, 2, 6);
  5.                                                 spread.highlightInvalidData(true);
  6.                                                 var dv = GcSpread.Sheets.DefaultDataValidator.createListValidator("4,5,6");
  7.             dv.showInputMessage = true;
  8.             dv.inputMessage = "Value must be 1, 2 or 3.";
  9.             dv.inputTitle = "tip";
  10.             sheet.setDataValidator(1, 1, dv);
  11.                     });
复制代码
回复 使用道具 举报
liulichao
注册会员   /  发表于:2015-9-10 15:13:00
5#

spreadjs 列功能怎么实现

如下图:需要列功能为:当月付价和现付价都不为0时保留现付价,月付价置为0,然后总价为采购数量*(月付价(现付价为0时)或者现付价),同时:采购数量不能大于本次申请数量,大于时置为本次申请数量

a

a
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-9-10 17:32:00
6#
您好,
您的问题,我们正在验证。
第二个功能点采购数量不能大于本次申请数量,大于时置为本次申请数量
初步考虑可以通过Validator来解决。
第一个,分为两种情况
1.当月付价和现付价都不为0时,采购数量*月付价
2.月付价置为0,采购数量*现付价

能够这么理解吗?
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-9-14 11:27:00
7#
您好,
第二个功能,可以直接使用公式,可以参考以下代码:
  1.         activeSheet.setValue(0, 0, 500);
  2.                                 activeSheet.setFormula(0, 2, "IF(B1>A1,A1,B1)");
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部