maintenant, le message d'erreur s'affichera si je quitte la zone de texte en cours. Je ne veux pas l'afficher jusqu'à ce que je clique sur le bouton Soumettre.comment faire l'affichage de message d'erreur requisfieldvalidator après avoir cliqué sur le bouton soumettre
Répondre
Cela n'est pas possible lorsque ClientScript est activé pour vos validateurs. Et le ClientScript est activé par défaut pour vos validateurs. Vous devez désactiver cela en paramétrant EnableClientScript sur False dans votre source.
Maintenant, dans le gestionnaire d'événements de votre bouton d'appel, appelez Page.Validate() et Page.IsValid pour voir si tous les validateurs ont réussi le test.
Exemple:
<asp:RequiredFieldValidator ID="rfvFirstName" runat="server" ControlToValidate="txtFirstName" EnableClientScript="false" Display="Dynamic" SetFocusOnError="true" />
Page.Validate();
if (!Page.IsValid)
{
//show a message or throw an exception
}
Normalement, il n'apparaît que lorsque vous entrez du texte, supprimez-le à nouveau, puis quittez la zone de texte. Je pense que c'est par conception. Essayez de modifier la propriété EnableClientScript.
Utilisez un contrôle sommaire de validation quelque part sur votre page ...
< asp:validationsummary id="valSummary" runat="server" headertext="Validation Errors:" cssclass="ValidationSummary" />
Puis valider:
<asp:textbox id="txtPostalCode" runat="server" MaxLength="250" Width="160px" text='<%# Bind("PostalCode") %>'></asp:textbox>
<asp:requiredfieldvalidator id="reqPostalCode" runat="server" errormessage="Postal code is required." controltovalidate="txtPostalCode">*</asp:requiredfieldvalidator>
Retirez le « * "Si vous ne voulez pas de retour immédiat ... l'erreur ssage est affiché dans le contrôle <asp:validationsummary>
lorsque vous envoyez le formulaire.
Définissez la propriété forecolor
du validateur sur la couleur d'arrière-plan de votre page. Ensuite, dans le onclientclick
du bouton d'envoi, modifiez la propriété color
à la css couleur désirée:
<asp:CompareValidator ID="birthdaycheck" runat="server" ErrorMessage=""
Text="*Required" ControlToValidate="birthday" ValidationGroup="rfi"
Operator="NotEqual" ForeColor="#F3F3E9" />
<asp:Button ID="btnFinish" runat="server" Text="Finish"
CausesValidation="true" CommandName="MoveComplete" CssClass="navButton"
ValidationGroup="rfi"
OnClientClick="$('#wizard_birthdaycheck').css('color','red');" />
Vous pouvez définir CausesValidation="False"
pour le bouton pour lequel vous ne voulez pas la validation se produise.
<asp:Button ID="btnCancel" runat="server" Text="cancel" CausesValidation="False"
onclick="btnCancel_Click"/>
Essayez celui-ci pour la création de boutons radio dynamiques ainsi que des validateurs sur le terrain requis ...
TableRow trow4 = new TableRow();
trow4.Style.Add("width", "100px");
TableCell tcel4 = new TableCell();
Label lb4 = new Label();
lb4.Text = Resources.QcLabelName.Gender;
tcel4.Controls.Add(lb4);
CSSCell(tcel4);
table.Rows.Add(trow4);
RadioButtonList rblist = new RadioButtonList();
rblist.ID = "rbtnmalendfemale";
rblist.Items.Add("Male");
rblist.Items.Add("Female");
tcel4.Controls.Add(rblist);
trow4.Cells.Add(tcel4);
table.Rows.Add(trow4);
rblist.Visible = true;
RequiredFieldValidator rFV5 = new RequiredFieldValidator();
TableCell tcl46 = new TableCell();
rFV5.ControlToValidate = "rbtnmalendfemale";
rFV5.ErrorMessage = "Gendor Selection Is Mandatory";
rFV5.Style.Add("color", "Red");
rFV5.ID = "Reqfield9";
tcl46.Controls.Add(rFV5);
trow4.Cells.Add(tcl46);
table.Rows.Add(trow4);
rFV5.Visible = true;
ce serait bien d'avoir des commentaires ou d'autres astuces sur le code que vous avez posté. S'il vous plaît fournir quelques explications dans les messages à venir. – WeSt
Merci beaucoup, je pense que peut-être c'est la seule façon que je peux faire à ce sujet. – Tony