我有一个带有两个文本框的表。每个文本框都有一个必需的验证器,以使用户在文本框中插入数据。

我也有一个登录表来确认用户特权。

当我提交登录按钮时,第一表中的验证器会出现并防止用户登录。我将登录按钮属性(导致验证)更改为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时,您将禁用该按钮的所有验证操作,而不仅仅是您不需要的验证操作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top