我在按钮上设置了cause validation为true。并且在C#代码中检查Page.IsValid
。但它总是返回false值?
这是一段代码片段,帮助我调试了我的问题:
foreach (BaseValidator validator in Page.Validators)
{
if (validator.Enabled && !validator.IsValid)
{
// Put a breakpoint here
string clientID = validator.ClientID;
}
}
我知道现在已经晚了,希望有人会从中受益。
如果你在网页中使用了 Requiredfieldvalidators ,你需要为每个 RequiredValidator 设置 validataiongroup 属性。
然后在代码中,你需要进行检查。
Page.Validate("validategroupname");
if(!Page.IsValid()){
// your code
}
这解决了问题。
在检查其有效状态之前,您是否已调用Page.Validate?
CauseValidation = "true"
,并且你有一些其他必需的控件,则行为是预期的。尝试将 CauseValidation = "false"
或检查按钮和相关控件的 ValidationGroup
属性 (解释)。<!--
<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>
-->
我知道可能有点晚了,但是:你有隐藏的验证器吗?