Domanda

Ho una tabella con due caselle di testo. Ogni testo ha un validatore necessario per rendere i dati di inserimento utente nella casella di testo.

Ho anche un tavolo Accesso per i privilegi di utente conferma.

Quando presento il pulsante di login, i validatori della prima tabella appaiono e impedisce all'utente di login. Ho cambiato la proprietà pulsante di accesso (Cause convalida) per falso, ma i validatori che ho aggiunto nella didn tabella di login 't appaiono.

Quindi, per favore come posso risolvere questo problema.

È stato utile?

Soluzione

Penso che si possa risolvere il problema utilizzando ValidationGroups . Ecco un estratto dal una pagina con una spiegazione più per voi:

Questa pagina ha due gruppi - un “Gruppo 1” e un “Gruppo 2” di validatori. Ci sono poi due pulsanti della pagina - quando button1 viene cliccato, il primo gruppo di validatori sarà fuoco. Quando si fa clic su button2, il secondo gruppo di validatori scatterà . Postback verrà bloccato sul lato client per impostazione predefinita se la convalida non riesce:

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

Altri suggerimenti

Quello che è necessario utilizzare è un attributo ValidationGroup su entrambi i pulsanti e le convalide. Questo permette alcune azioni per far rispettare solo un sottoinsieme di validatori sulla pagina quando il pulsante viene premuto.

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

Ora, quando btnA viene cliccato, si verificherà solo se rfvA è valida (controllo txtA) e quando btnB viene cliccato, si verificherà solo se rfvB è valido. E sì è possibile avere più controlli di convalida nello stesso gruppo di validazione.

Quando si imposta la proprietà CausesValidation su false, si erano disabilitare tutte le azioni di validazione per il pulsante, non solo quelli che non volevi on.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top