找回密码
 立即注册

QQ登录

只需一步,快速开始

info

初级会员

16

主题

67

帖子

454

积分

初级会员

积分
454

[已处理] 数据验证的疑问

info
初级会员   /  发表于:2020-9-23 10:03  /   查看:4774  /  回复:14
本帖最后由 info 于 2020-9-24 14:09 编辑

项目需要根据条件修改单元格输入的数值,
请问如何使用代码增加或修改验证的内容,设置如下图显示


image.png413788756.png


image.png32598875.png

14 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-9-23 10:59:16
沙发
回复 使用道具 举报
info
初级会员   /  发表于:2020-9-23 11:11:32
板凳
第一个图片功能已经根据连接的方法实现
如果是要像第二个图片那样设置出错警告应如何实现
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-9-23 11:44:08
地板
可以稍微改写一下,用IconNotify

  1.             FarPoint.Win.Spread.IconNotify linen = new FarPoint.Win.Spread.IconNotify();
  2.             linen.Icon = Properties.Resources.Spread;
  3.             linen.IconAlignment = ContentAlignment.MiddleRight;
  4.             linen.IconTip = "sfsfsdfsdfsf!";
  5.             linen.DoActionReason = FarPoint.Win.Spread.ValidateReasons.EndEdit;
  6.             
  7.             FarPoint.Win.Spread.IncludeListValidator ilist = new FarPoint.Win.Spread.IncludeListValidator();
  8.             ilist.Candidates = new string[] { "Bird", "Deer", "Squirrel", "Lizard" };
  9.             ilist.Actions.Add(linen);
  10.             fpSpread1.Sheets[0].AddValidators(new FarPoint.Win.Spread.Model.CellRange(1, 1, 1, 1), ilist);
复制代码
回复 使用道具 举报
info
初级会员   /  发表于:2020-9-23 12:22:50
5#
使用图标的方式显示不够直观,怕用户使用的时候忘记看了
直接出现提示框这样是否能做到呢
image.png624973449.png
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-9-23 13:46:17
6#
可以的
image.png768633422.png


参考以下代码
  1.             FarPoint.Win.Spread.IconNotify linen = new FarPoint.Win.Spread.IconNotify();
  2.             linen.Icon = Properties.Resources.Spread;
  3.             linen.IconAlignment = ContentAlignment.MiddleRight;
  4.             linen.IconTip = "sfsfsdfsdfsf!";
  5.             linen.DoActionReason = FarPoint.Win.Spread.ValidateReasons.EndEdit;
  6.             
  7.             FarPoint.Win.Spread.IncludeListValidator ilist = new FarPoint.Win.Spread.IncludeListValidator();
  8.             ilist.Candidates = new string[] { "Bird", "Deer", "Squirrel", "Lizard" };
  9.             ilist.Actions.Add(linen);
  10.             ilist.Actions.Add(new MessageBoxNotify() { Icon= MessageBoxIcon.Error, Caption="错误",Message= "sfsfsdfsdfsf" });
  11.             fpSpread1.Sheets[0].AddValidators(new FarPoint.Win.Spread.Model.CellRange(1, 1, 1, 1), ilist);
复制代码


回复 使用道具 举报
info
初级会员   /  发表于:2020-9-23 15:08:10
7#

根据上述方法可以实现弹窗,但是弹窗是点击"确定"后还会弹一次,请问是什么问题呢
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-9-23 15:36:25
8#
可以给MessageBoxNotify加上DoActionReason属性来控制何时弹出
比如下面的代码,只在编辑结束时弹出一次,
  1. DoActionReason= ValidateReasons.EndEdit
复制代码
回复 使用道具 举报
info
初级会员   /  发表于:2020-9-23 16:03:46
9#
Richard.Ma 发表于 2020-9-23 15:36
可以给MessageBoxNotify加上DoActionReason属性来控制何时弹出
比如下面的代码,只在编辑结束时弹出一次, ...

不好意思还有个小问题,如果提示输入错误,能否直接把输入错误的内容进行清除
现在是提示之后按确定数值还是会在单元格,然而这数值是不合法的
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-9-23 18:32:55
10#
这个我需要帮你验证一下,明天早上给您回复
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部