Domanda

Ho messo un validatore di intervallo in un controllo di casella di testo asp.net nella mia pagina web; ogni volta che l'intervallo non si incontra; invierà il messaggio di errore,

Ma si sta spostando alla pagina successiva. come posso impedire che passi alla pagina successiva dopo il clic del pulsante di invio mentre l'intervallo non è soddisfatto ??

È stato utile?

Soluzione

  • Assicurati che il tuo pulsante di invio sia nello stesso ValidationGroup del tuo validatore di intervallo. Ciò è particolarmente vero se hai più di un ValidationGroup definito.

  • Assicurarsi che la proprietà CauseValidation non sia impostata su false sul pulsante. Il valore predefinito è True , quindi se la proprietà non è dichiarata nell'ASPX o nel codice sottostante, il pulsante dovrebbe attivare la sequenza di convalida.

  • Se non si utilizza il normale flusso di pagine, (ovvero il pulsante ha la proprietà UseSubmitBehvior impostata su False , o in alcuni casi, quando si utilizza asych Richiamate AJAX) quindi vorrai racchiudere la pagina cambiando codice in un blocco If che verifica la presenza di Page.IsValid prima dell'attivazione.

  • Controlla attentamente che ControlToValidate sia impostato sul controllo corretto e che non abbia un valore predefinito che supera la convalida.

Altri suggerimenti

Codice?

Stai inviando direttamente alla pagina successiva anziché postare nuovamente sulla stessa pagina e reindirizzare?

Stai reindirizzando in Page_Load, che si verifica prima di validazione ?

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