Frage

ich eine Tabelle mit zwei Textfelder haben. Jedes Textfeld hat einen erforderlichen Validator die Benutzereinsatzdaten in der Textbox zu machen.

Ich habe auch eine Login-Tabelle zu bestätigen Benutzer privilages.

Wenn ich die Schaltfläche Login einreichen, die Validatoren aus der ersten Tabelle erscheinen und verhindern, dass der Benutzer anmeldet. Ich die Login-Button-Eigenschaft geändert (Ursachen Validierung) auf falsch, aber die Validierer, die ich in der Login-Tabelle didn hinzugefügt ‚t erscheinen.

So bitte, wie kann ich dieses Problem lösen.

War es hilfreich?

Lösung

ich glaube, Sie Ihr Problem durch Verwendung von lösen kann ValidationGroups . Hier ist ein Auszug aus einer Seite mit einer längeren Erklärung für Sie:

Diese Seite hat zwei Gruppen - eine „Gruppe 1“ und eine „Gruppe 2“ von Validatoren. Es gibt dann zwei Tasten auf der Seite - , wenn button1 geklickt wird, wird die erste Gruppe von Validatoren feuern. Wenn button2 angeklickt wird, wird ausgelöst, die zweite Gruppe von Validatoren . Postbacks wird standardmäßig blockiert Client-Seite werden, wenn die Validierung fehlschlägt:

<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>

Andere Tipps

Was Sie verwenden müssen, ist ein Validation Attribut sowohl auf die Tasten und die Validierungen. Auf diese Weise können bestimmte Aktionen nur eine Teilmenge von Validatoren auf der Seite erzwingen, wenn die Schaltfläche geklickt wird.

<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" />

Nun, wenn btnA angeklickt wird, wird es nur prüfen, ob rfvA gültig ist (Überprüfung txta) und wenn BTNB angeklickt wird, wird es nur prüfen, ob rfvB gültig ist. Und ja können Sie mehr Überprüfungs-Steuerelemente in der gleichen Validierungsgruppe haben.

Wenn Sie die Causes Eigenschaft auf false gesetzt, Sie wurden alle Validierungs Aktionen für die Schaltfläche zu deaktivieren, nicht nur die, die Sie nicht wollen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top