请教关于MultiRow TextBoxCell的Validator的使用
想做一个文本长度的检证 例如 如果传入的数据长度大于3位 则弹出错误信息现在给TextBoxCell的Validator添加了textlengthvalidator 并且actions设定了 messageboxnotify
但是没有达到我想要的效果
因此我想知道是不是这边使用方法有误 而没有达到想要的效果
所以想请教一下关于validator的使用 是否有可参照的文档例子? 默认的MessageBoxNotify验证是在Cell离开编辑状态的时候,如果想在编辑进行中进行验证你需要改变MessageBoxNotify.DoActionReason为EditedFormattedValueChanged。 回复 2楼dafo的帖子
如果是 在用 setvalue给单元格赋值的时候做验证 应该怎么写呢 顶顶 求大神们回复 如果你是通过代码设置改变值,你需要在设置后调用ValidateCell或ValidateRow去强行触发验证逻辑。
代码如下:
this.gcMultiRow1.SetValue(0, 1, "aaaa");
this.gcMultiRow1.ValidateCell(0, 1, true); 回复 5楼dafo的帖子
用了您的方法 现在可以正常验证了 非常感谢
验证后设置valueprocess 的 valueprocessoption 为restore 但是验证后 画面上单元格里还是保留了错误的值 请问如果想实现restore上次的数值 该添加哪些代码 ? 回复 1楼x_g的帖子
你好。
MultiRow中文文档地址:
http://www.gcpowertools.com.cn/downloads/PDF/MultiRowWin6.chm
DoActionReason类型可以选择。 如果你是通过代码改变Cell的值,是没有办法触发valueprocess的restore功能的,只能你自己缓存设置之前的值,发现验证不通过后自己再把缓存的值设回去。
实例代码:
object oldValue = this.gcMultiRow1.GetValue(0, 1);
this.gcMultiRow1.SetValue(0, 1, "aaaa");
if (!this.gcMultiRow1.ValidateCell(0, 1, true))
{
this.gcMultiRow1.SetValue(0, 1, oldValue);
}
回复 8楼dafo的帖子
很可惜 没法触发valueprocess
只能用这种方法了
非常感谢 没法触发valueprocess的原因是因为用户通过了自己的业务逻辑控制value的改变,对于GcMutiRow来说它无法分辨这个值变化的原因,也就无法区分什么是你想回滚的旧值,期望你能够理解。
页:
[1]
2