我按钮上的原因验证为true。我正在检查c#代码中的Page.IsValid
。但它总是回归虚假价值?
答案 0 :(得分:19)
我知道为时已晚,希望有人会受益
如果您在网页中有 Requiredfieldvalidators ,则需要将 validataiongroup 属性设置为每个 RequiredValidator 。
然后在代码中你要检查
Page.Validate("validategroupname");
if(!Page.IsValid()){
// your code
}
这解决了问题
答案 1 :(得分:17)
以下是帮助我调试问题的代码段:
foreach (BaseValidator validator in Page.Validators)
{
if (validator.Enabled && !validator.IsValid)
{
// Put a breakpoint here
string clientID = validator.ClientID;
}
}
答案 2 :(得分:2)
在检查其有效状态之前,您是否曾致电Page.Validate?
答案 3 :(得分:1)
如果您的按钮有CauseValidation = "true"
并且您有其他所需的控件,则会出现此行为。尝试设置CauseValidation = "false"
或检查按钮和关联控件(explanation)的ValidationGroup
属性。
答案 4 :(得分:0)
这个问题发生在一个注释掉的asp.net验证器上。 例如
<!--
<asp:label id="labName" runat="server" Text="Name"
AssociatedControlID="tbName"></asp:label> <asp:textbox id="tbName"
runat="server"></asp:textbox> <asp:requiredfieldvalidator
id="ReqFieldValID" runat="server" ControlToValidate="tbName"
ErrorMessage="Please enter your name"></asp:requiredfieldvalidator>
-->
尽管在HTML注释中包含了验证器,但由于注释的验证器,我的页面仍然无法通过验证。
解决方案:添加验证摘要以确定问题。删除注释的验证程序以解决问题。
答案 5 :(得分:-1)
我知道这可能为时已晚:但你有一个隐藏的验证器吗?