Asp.net messaggio di errore di convalida di cambiare le etichette di testo

Sto usando asp.net controlli di convalida per la convalida dell’input dell’utente. Quello che voglio è quello di modificare il testo dell’etichetta con il messaggio di errore generato dal controllo di validazione.

<asp:Label ID="Label1" runat="server" Text="Whats your name"></asp:Label>
<asp:TextBox ID="nameB" Width="322px" Height="30px" runat="server"></asp:TextBox>

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ValidationGroup="business" runat="server" ErrorMessage="Please tell us your name." ControlToValidate="nameBuisness" CssClass="errMsg" Display="Dynamic"></asp:RequiredFieldValidator>

Grazie.

  • Mi piace l’idea, ma io non sono sicuro che può essere fatto utilizzando la normale ASP.NET controlli di Convalida. Se si sono aperti per le soluzioni di utilizzo di altri quadri di convalida (come jQuery Validate, o alcuni altri convalida jQuery plugin) potrei scrivere una risposta su come fare con il tuo esempio.
  • Ciao @TomasLycken sono nuovo di programmazione in modo che qualsiasi suggerimento e orientamento sarebbe bello imparare.Si prega di non mostrare ciò che si sta suggerendo Grazie.
  • Dopo aver letto le risposte da altri, mi rendo conto di quello che avevo in mente non davvero in forma in WebForms paradigma – credo di aver fatto ASP.NET MVC per troppo tempo 😛 Ma ci sono due buone proposte per voi di provare!
InformationsquelleAutor Raghav | 2012-12-29



2 Replies
  1. 1

    Un modo è quello di gestire l’invio del pulsante OnClientClick-evento e chiamare una funzione javascript come:

    <script type="text/javascript">
        function displayValidationResult() {
            //Do nothing if client validation is not available
            if (typeof (Page_Validators) == "undefined") return;
            var LblName = document.getElementById('LblName');
            var RequiredName = document.getElementById('RequiredName');
            ValidatorValidate(RequiredName);
            if (!RequiredName.isvalid) {
                LblName.innerText = RequiredName.errormessage;
            }
        }
    </script>
    
    <asp:Label ID="LblName" runat="server" Text="Whats your name"></asp:Label>
    <asp:TextBox ID="TxtNameBusiness" Width="322px" Height="30px" runat="server"></asp:TextBox>
    <asp:RequiredFieldValidator ID="RequiredName" ValidationGroup="business"
        runat="server" ErrorMessage="Please tell us your name." ControlToValidate="TxtNameBusiness"
        CssClass="errMsg" Display="None"></asp:RequiredFieldValidator>
    <asp:Button ID="BtnSumbit" runat="server"  Text="Submit"
        OnClientClick="displayValidationResult()" ValidationGroup="business" />

    Ho usato alcuni dei pochi ASP.NET client di convalida dei metodi disponibili. Ho anche rinominato i controlli per un po ‘ di più significativo e ha aggiunto presentare il pulsante.

    ASP.NET Convalida in Profondità

    • Quindi impostare il validator Display="None", modificato la mia risposta.
    • grazie mille sir, dal modo in cui quello che sto cercando di realizzare è link. È l’approccio ottimale più o devo andare per qualche altra cosa.
  2. 1

    Se la vostra esigenza è che si vuole fare questa convalida utilizzando il built-in ASP.Net controlli di convalida, quindi sarà necessario utilizzare il ASP.Net CustomValidator di controllo. Questo può essere fatto utilizzando il ASP.Net RequiredFieldValidator di controllo. Per eseguire la convalida specificato, mettere un CustomValidator controllo sulla tua pagina in modo che il codice simile a questo:

    <asp:Label ID="Label1" runat="server" Text="Whats your name"></asp:Label>
    
    <asp:TextBox ID="nameB" Width="322px" Height="30px" runat="server"></asp:TextBox>
    
    <asp:CustomValidator ID="CustValidator" runat="server" ControlToValidate="nameB" 
        ValidateEmptyText="true"  ErrorMessage="Please tell us your name."  
        onservervalidate="CustValidator_ServerValidate" Display="none"  >**</asp:CustomValidator>
    
    <asp:Button ID="btnSubmit" runat="server" Text="Submit" onclick="btnSubmit_Click"  CausesValidation="true"  />

    È quindi necessario scrivere il custom validator. Il lato server di convalida del codice simile a questo:

        protected void CustValidator_ServerValidate(object source, ServerValidateEventArgs args)
        {
            if (string.IsNullOrWhiteSpace(args.Value))
            {
                Label1.Text = CustValidator.ErrorMessage;
                args.IsValid = false;
            }
            else
            {
                Label1.Text = "Whats your name";
                args.IsValid = true;
            }
        }

    Questo custom validator vi darà il comportamento desiderato.

    In generale, quando si utilizza un CustomValidator di controllo, si dovrebbe fare sia la validazione lato server (per sicurezza) e la validazione lato client (per una migliore interfaccia utente). Per ottenere la validazione lato client, è necessario scrivere una funzione lato client in javascript e/o jQuery per fare simili convalida e quindi assegnare l’ClientValidationFunction di custom validator.

    Ulteriori informazioni sul controllo CustomValidator può essere trovato nel La documentazione MSDN.

    • Ciao @Joe Alfano, grazie, ma c’è un problema/ Se sto rimuovendo le due astriks nel codice di cui sopra, il messaggio di errore viene visualizzato due volte. Dal modo in cui qui è quello che voglio ottenere, link
    • Impostare i validatori proprietà di Visualizzazione a nessuno. Ho modificato la mia risposta.

Lascia un commento