【发布时间】:2011-01-25 10:57:08
【问题描述】:
我似乎有一点错误,我有一个带有链接按钮的 ASP.NET 转发器控件,并且链接按钮的原因验证属性设置为 false。
但是;当单击它使面板在网页上可见时,asp.net 必填字段验证器控件触发并显示其错误消息。在我有验证器控件的那些控件上。
关于什么可能导致它忽略设置为 false 的原因验证属性的任何想法?
【问题讨论】:
标签: asp.net validation
我似乎有一点错误,我有一个带有链接按钮的 ASP.NET 转发器控件,并且链接按钮的原因验证属性设置为 false。
但是;当单击它使面板在网页上可见时,asp.net 必填字段验证器控件触发并显示其错误消息。在我有验证器控件的那些控件上。
关于什么可能导致它忽略设置为 false 的原因验证属性的任何想法?
【问题讨论】:
标签: asp.net validation
在我看来,您应该为转发器控件和作为必填字段验证器来源的控件设置不同的 ValidationGroup 属性值。重复控制的容器可能引发了必需的字段验证器可以听到的事件。
如果上述方法无济于事,请尝试使用EnableClientScript="False" 禁用RequiredFieldValidator 的客户端验证。并在它真正有用时激活RequiredFieldValidator。例如,在某些按钮事件处理程序中,您可以应用这样的代码:
MyButton.Validate();
if (MyButton.IsValid)
{
Do what you want...
}
【讨论】:
对于遇到此问题并偶然发现这篇文章的任何人,这就是我发现的。
原来问题正在发生,因为我在中继器上设置了 EnableViewState="false"。这以某种方式破坏了事件回发,并使页面上的每个验证器都被触发。我所要做的就是从 Page_Load() 中手动调用 Repeater 上的 DataBind(),然后它就被清除了。
【讨论】:
尝试在设计视图中始终将面板的可见性设置为真,并再次检查验证。
【讨论】: