找回密码
 立即注册

QQ登录

只需一步,快速开始

Alice
社区贡献组   /  发表于:2015-8-5 16:04:00
11#
回复 10楼CanYou1的帖子

你在帖子回复里鼠标hover到我的头像上,然后点击发送短消息即可。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
CanYou1
高级会员   /  发表于:2015-8-5 16:30:00
12#
回复 8楼Alice的帖子

是这样的,某些情况下我们会给列表动态更新数据源,这里是不会触发那三个后台事件(CommittedRowEdit/CommittedEdit/CommittedNewRow)的,
所有这里就还是有重复提示。
Demo如下:



Demo跑起来后,我已经给三个后台事件加了去重复代码,但点击最下面的按钮时重复提示还是会有。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-8-5 18:03:00
13#
回复 12楼CanYou1的帖子

通过电话沟通了此问题。
请尝试电话中的方法,如果有任何反馈请提出。我会跟进你的进展。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
CanYou1
高级会员   /  发表于:2015-8-5 23:39:00
14#
回复 13楼Alice的帖子

Alice,按照下午电话里说的,我去掉了微软的Attribute校验规则,自己在this[string columnName]和Error属性里写了校验逻辑,还是有重复提示。
见Demo:



我还找到了重复的原因,C1ValidationBehavior校验会把this[string columnName]和Error属性返回的错误做个简单迭加,就因为这个迭加,导致了重复。

另外,我跑了你们C1的DataGrid Sample。有两点我想说:
1,你们的Sample里也是C1ValidationBehavior校验与微软的Attribute校验一起用的,如下图:



因为两个都用了,所以你们的Sample里也有重复提示,只不过一个中文,一个英文。如下图:



2,你们的Sample里为什么Error属性返回的是空字符串?(真正做开发时是不会这么处理的吧?)如下图:



我猜测你们C1ValidationBehavior在行校验时是取了Error属性,所以Error属性里真正应该实现的逻辑是
对行的每一个字段进行校验,返回每个字段校验结果的拼接(我们的项目就是这样实现的)。
为此我专门在你们的Sample里加了这个逻辑,如下:



得到的结果就是Error属性值返回的错误提示也被迭加了进去,如下图:



这样,总共加起来,3个地方所给的同一个错误(对同一个字段的校验)被迭加了起来,导致重复2次。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-8-6 09:22:00
15#
回复 14楼CanYou1的帖子

谢谢你提供的Demo。
Demo我们收到了,会对你提出的问题进行校验,验证后给你回复。
很抱歉给你带来的不便。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
CanYou1
高级会员   /  发表于:2015-8-6 09:28:00
16#
回复 15楼Alice的帖子

没关系,我们一起争取把问题解决。对于我们来说,不管技术上的有多大困难,重复提示的问题总是要解决的。因为我们的客户是不能接受重复提示的。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-8-6 17:59:00
17#
回复 16楼CanYou1的帖子


很抱歉给你带来的不便。
经过新的调查和校验,我们针对你的Demo做出了修改,不仅解决了你提到Demo里的验证重复问题。
也通过converter方法解决在另一个帖子的不能删除问题。
另一个帖子:http://gcdn.gcpowertools.com.cn/showtopic-18027.html

两个问题的解决方案统一Demo如下:


希望这个解决方案对你项目有所帮助。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
CanYou1
高级会员   /  发表于:2015-8-6 21:41:00
18#
回复 17楼Alice的帖子

Alice,首先非常感谢你为此付出的努力,而且我们也很高兴,因为数字不能删除问题解决了,解了我们一大难题。

但是,很遗憾,重复提示的问题没有解决。
我在14楼里对提示重复的原因和表现都做了很仔细的说明。麻烦你再看一下。

我再复述下我们的需求:
1,C1ValidationBehavior校验与微软的Attribute校验我们都要用,也就是下面用红框标出的这句代码不能去掉:



2,Error属性里我们不可能只返回空,是需要对每个字段做验证的,也就是下面用红框标出的代码也不能去掉:



上面两处代码加上后,再加上this[string columnName]里面的校验,重复提示就出现了(同一个提示出现3遍):



最后,我附上自己对这个问题的看法:
1,微软的Attribute校验、Error属性里对每个字段的校验、this[string columnName]里面对单个字段的校验,
这三者既需要也很合理(而且在我们目前的项目里是大量运用的,不可能去掉)。

2,解决此问题的思路应从C1ValidationBehavior着手,当它往Rows[Index].Errors这个集合里添加错误信息时,
应该判断下如果同一个字段的同一种错误已经添加过了,就不要再添加了,这才能从根本上解决这个问题。
我希望你们的同仁们看能不能从这里入手,想办法解决这个问题。
我自己也在想办法从这里入手解决,希望我们一起共同努力,争取把这个问题彻底解决。:share:

Demo如下:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
CanYou1
高级会员   /  发表于:2015-8-7 14:24:00
19#
Alice,很高兴也很感谢,在LoadingRow事件里去重复确实可以达到效果,接下来我在项目里再测试下,如果确实可以那问题就算得到解决。再次感谢!:rose
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-8-7 14:25:00
20#
回复 18楼CanYou1的帖子

此问题通过电话沟通。
这是微软的设计框架,无法进行更改。
各个信息都会获取。
下面是对IDataErrorInfo接口的解释。
Name Description
Error    Gets an error message indicating what is wrong with this object.
Item    Gets the error message for the property with the given name.
msdn地址:https://msdn.microsoft.com/en-us ... idataerrorinfo.aspx
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部