【发布时间】:2012-07-26 15:04:54
【问题描述】:
我有一个包含许多RequiredFieldValidators 的巨大表单,我如何以编程方式确定哪个控件将Page 的IsValid 属性设置为false?
【问题讨论】:
标签: asp.net validation postback
我有一个包含许多RequiredFieldValidators 的巨大表单,我如何以编程方式确定哪个控件将Page 的IsValid 属性设置为false?
【问题讨论】:
标签: asp.net validation postback
在服务器端,您可以查看Validators 属性以找到所有IValidator 实例。然后,您只需测试哪些不是.IsValid。
var notValidValidators = Page.Validators.Cast<IValidator>().Where(v => !v.IsValid);
在客户端,它是相似的。有一个 JavaScript 数组 Page_Validators,每个数组都有一个 isvalid 属性。
var notValidValidators = Page_Validators.filter(function(v) { return !v.isvalid; });
【讨论】:
Error 17 'System.Web.UI.ValidatorCollection' does not contain a definition for 'Where' and no extension method 'Where' accepting a first argument of type 'System.Web.UI.ValidatorCollection' could be found (are you missing a using directive or an assembly reference?)
Page.Validators.Cast<IValidator>().Where(v => !v.IsValid) 似乎可以编译,谢谢!
您可以检查各个验证器的.IsValid 属性。
如果是RequiredFieldValidator,如果控件仍然无效,用户应该不能回发。你想做什么?
【讨论】:
EnableClientScript="false",并且还有一堆以编程方式添加的。我有一个无效的表单实例,但未指定错误,我正在尝试找出哪个验证器正在触发,以便我可以添加更明确的消息。