在我的管理页面上,我有一个"Log out"
按钮。在一个页面上有这个表格,你可以填写并提交,它有一些validator controls
。问题是,当我在这个页面上时,我无法注销,因为它希望填写文本框,即使它 - 显然 - 不是通过注销按钮提交的。每次尝试离开此页面时验证程序是否都在执行,即使我没有尝试提交表单?要清楚:它适用于其他所有页面,只是这里的验证可以阻止它。
表格代码:
<p>
<asp:Label ID="lblA" runat="server" Text="LabelA"></asp:Label><br />
<asp:TextBox ID="txtA" runat="server"></asp:TextBox>
*
<asp:RequiredFieldValidator
ID="rfvA"
runat="server"
ControlToValidate="txtA"
ErrorMessage="Required"
Display="Dynamic">
</asp:RequiredFieldValidator>
</p>
<p>
<asp:Label ID="lblB" runat="server" Text="LabelB"></asp:Label><br />
<asp:TextBox ID="txtB" runat="server"></asp:TextBox>
*
<asp:RequiredFieldValidator
ID="rfvB"
runat="server"
ControlToValidate="txtB"
ErrorMessage="Required"
Display="Dynamic">
</asp:RequiredFieldValidator>
</p>
退出按钮:
<asp:Button runat="server" Text="Log out" ID="btnLogout" OnClick="btnLogout_Click"/>
点击退出时:
protected void btnLogout_Click(object sender, EventArgs e)
{
FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();
}
有什么想法吗?
答案 0 :(得分:5)
将原因验证false添加到按钮
<asp:Button runat="server" CausesValidation="False" Text="Log out" ID="btnLogout" OnClick="btnLogout_Click"/>
答案 1 :(得分:0)
您还可以使用控件的ValidationGroup
属性。
将相同的ValidationGroup
分配给您需要进行验证的控件组(和RequiredFieldValidator
),例如用户名和密码文本框以及登录按钮(在您的情况下为两个文本框)并分配不同的ValidationGroup
{1}}到其他控件(在你的情况下注销按钮)。
因此,只有在单击相同的验证组按钮时才会触发验证。