<asp:UpdatePanel ID="LoginPanel" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<div id="login">
<div class="row">
<div class="label">
<asp:Label ID="lblUsername" Text="<%$ Resources:Login, UserNameField %>" runat="server" />
</div>
<div class="field">
<asp:TextBox ID="txtUsername" MaxLength="12" runat="server" />
<asp:RequiredFieldValidator ID="rfvUsername" ControlToValidate="txtUsername" ValidationGroup="vgLogin" SetFocusOnError="true"
ErrorMessage="*" ToolTip="<%$ Resources:Login, UserNameRequired %>" runat="server" />
</div>
</div>
<div class="row">
<div class="label">
<asp:Label ID="lblPassword" Text="<%$ Resources:Login, PasswordField %>" runat="server" />
</div>
<div class="field">
<asp:TextBox ID="txtPassword" MaxLength="12" TextMode="Password" runat="server" />
<asp:RequiredFieldValidator ID="rfvPassword" ControlToValidate="txtPassword" ValidationGroup="vgLogin" SetFocusOnError="true"
ErrorMessage="*" ToolTip="<%$ Resources:Login, PasswordRequired %>" runat="server" />
</div>
</div>
<div class="row">
<div class="label">
<asp:Label ID="lblRemember" Text="<%$ Resources:Login, RememberField %>" runat="server" />
</div>
<div>
<asp:CheckBox ID="chkRemember" Checked="true" ToolTip="<%$ Resources:Login, RememberToolTip %>" runat="server" />
</div>
</div>
<div class="buttons">
<asp:Button ID="btnLogin" Text="<%$ Resources:Login, Command %>" OnClick="btnLogin_Click" ValidationGroup="vgLogin" CausesValidation="true" runat="server" />
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
La première fois, les valideurs ne vérifient pas si les champs sont complétés ou non, le formulaire est simplement soumis quoi qu'il arrive, après ce premier hic, formulaire valide correctement chaque fois. Je sais que je peux juste demander (et devrait, indépendamment) si Page.IsValid
côté serveur, mais je voudrais toujours que la validation alerte correctement l'erreur d'entrée de l'utilisateur la première fois au lieu d'attendre la réponse du serveur en premier.Validation de formulaire ASP.NET Ne fonctionne pas la première fois
Qu'est-ce que je fais mal?
Quelle version d'asp.net utilisez-vous? Les asp.net dans les validateurs de la version 2.0 ne fonctionnent pas avec les updatepanels (parce que les updatepanels n'existaient pas à la sortie de la version 2.0) mais avec la version 3.5. Aussi un exemple avec du texte au lieu des ressources: Les options de connexion seraient préférées car cela rend la mise en place d'un cas de test plus rapide –
J'utilise .net 4.0 – bevacqua
J'ai essayé l'exemple de code fourni, et je n'ai pas pu simuler votre cas. Je vous recommande de déboguer la validation js en utilisant les outils de développement I.E ou firebug (commencer par les fonctions 'ValidatorOnLoad' et' ValidatorCommonOnSubmit'). –