Domanda

Devo fare qualcosa di sbagliato. Non riesco a eseguire il metodo ServerValidate del mio CustomValidator.

Ho una pagina ASP.NET di Visual Basic con un CustomValidator ...

<asp:TextBox ID="TextBox1" runat="server" />
<asp:CustomValidator ID="CustomValidator1" runat="server"
    ControlToValidate="TextBox1"
    ErrorMessage="Friendly message goes here."
    Display="Dynamic" />
<asp:Button ID="Button1" runat="server"
    Text="Submit"
    CausesValidation="True" />

Per questo test, ho impostato la convalida in modo che fallisca sempre ...

Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidator1.ServerValidate
    args.IsValid = False
End Sub

Ma quando si fa clic sul pulsante, il metodo CustomValidator1_ServerValidate () non viene mai eseguito!

Protected Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Page.Validate()
    If Page.IsValid Then
        'it executes the code here!
    End If
End Sub

Neanche se convalido esplicitamente quel controllo ...

CustomValidator1.Validate() 'does nothing?

Cosa sto sbagliando?

È stato utile?

Soluzione

Aggiungi la proprietà:

 ValidateEmptyText="True"

Altri suggerimenti

Stai inserendo il pulsante di invio del controllo validatore nello stesso gruppo di validazione?

In primo luogo, sembra che manchi l'attributo OnServerValidate nel markup sopra.

In secondo luogo, vorrei verificare che CustomValidator1_ServerValidate sia stato impostato come gestore eventi per l'evento ServerValidate per Textbox1. Ho avuto occasioni in cui ho cambiato il nome del metodo di convalida nel markup e code-behind, ma l'IDE non ha aggiornato automaticamente il nome del metodo di abbonamento passato al delegato del gestore dell'evento

So che è una domanda stupida (o potrebbe sembrare!). Ma hai effettivamente inserito o modificato il valore nella casella di testo? penso che il validatore non si attiverà senza cambiare il contenuto della casella di testo.

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