题
我有一个带有两个文本框的表。每个文本框都有一个必需的验证器,以使用户在文本框中插入数据。
我也有一个登录表来确认用户特权。
当我提交登录按钮时,第一表中的验证器会出现并防止用户登录。我将登录按钮属性(导致验证)更改为false,但是我在登录表中添加的验证器未出现。
因此,请如何解决此问题。
解决方案
我认为您可以通过使用 验证组. 。这是一个摘录 具有更长解释的页面 为你:
此页面有两个组 - 一个“ group1”和一个验证器的“ group2”。然后,页面上有两个按钮 - 单击Button1时,第一组验证器将发射。单击Button2时,第二组验证器将发射. 。如果验证失败,则默认情况下会阻止客户端:
<html>
<body>
<form runat=“server”>
<asp:textbox id=“TextBox1” runat=“server”/>
<asp:requiredfieldvalidator ValidationGroup=“Group1”
ErrorText=“Need to Fill in Value!”
ControlToValidate=“TextBox1”
runat=“server”/>
<asp:textbox id=“TextBox2” runat=“server”/>
<asp:requiredfieldvalidator ValidationGroup=“Group2”
ErrorText=“Need to Fill in Value!”
ControlToValidate=“TextBox2”
runat=“server”/>
<asp:button text=“Group1” ValidationGroup=“Group1” runat=“server”/>
<asp:button text=“Group2” ValidationGroup=“Group2” runat=“server”/>
</form>
</body>
</html>
其他提示
您需要使用的是在按钮和验证上的验证集团属性。这允许某些操作只能在单击按钮时在页面上执行验证器的子集。
<asp:TextBox ID="txtA" runat="server" />
<asp:RequiredFieldValidator ID="rfvA" runat="server" ErrorMessage="Message." ControlToValidate="txtA" ValidationGroup="A" />
<asp:Button ID="btnA" runat="server" Text="A" ValidationGroup="A" />
<asp:TextBox ID="txtB" runat="server" />
<asp:RequiredFieldValidator ID="rfvB" runat="server" ErrorMessage="Message." ControlToValidate="txtA" ValidationGroup="B" />
<asp:Button ID="btnB" runat="server" Text="B" ValidationGroup="B" />
现在,当单击BTNA时,它将仅检查RFVA是否有效(检查TXTA),并且当单击BTNB时,它将仅检查RFVB是否有效。是的,您可以在同一验证组中具有多个验证控件。
当您将诉讼属性设置为false时,您将禁用该按钮的所有验证操作,而不仅仅是您不需要的验证操作。
不隶属于 StackOverflow