/ / RequiredFieldValidator ne déclenche pas - c #, asp.net, validation, requiredfieldvalidator

RequiredFieldValidator ne se déclenche pas - c #, asp.net, validation, requiredfieldvalidator

J'ai un formulaire simple avec un validateur requis surune zone de texte. Lorsque je laisse la zone de texte vide et vérifie la Page.isValid, elle est toujours vraie. Je ne peux pas comprendre ce que je fais mal pour que la page soit toujours vraie.

<asp:TextBox ID="txtVendorTracking" runat="server" Width="150px"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvTxtVendorTracking"
InitialValue="Enter Vendor Tracking Nbr" runat="server"
ErrorMessage="Vendor Tracking Required." ControlToValidate="txtVendorTracking"
ValidationGroup="val" Display="Dynamic">*</asp:RequiredFieldValidator>

<asp:Button ID="btnSave" runat="server" Text="Save" Width="100px"  onclick="btnSave_Click" ValidationGroup="val"/>

protected void btnSave_Click(object sender, EventArgs e)
{
Page.Validate(MasterValidation.ValidationGroup);
if (!Page.IsValid)
{
ModalPopupExtender3.Show();
txtRONbr.Focus();
return;
}
}

Réponses:

0 pour la réponse № 1

Étant donné que l'état initial de la zone de texte est vide, le problème est ici:

InitialValue="Enter Vendor Tracking Nbr"

Par MSDN:

La validation n'échoue que si la valeur du contrôle d'entrée associé correspond à cette valeur initiale en cas de perte de concentration.

Puisque la valeur initiale du validateur n'est pasune chaîne vide, elle traite une chaîne vide comme une entrée valide. Pour résoudre ce problème, vous devez décider quel doit être l'état initial de votre zone de texte et configurer le validateur en conséquence. Par exemple en ce moment vous devriez juste enlever InitialValue à partir du balisage - il déborde à String.Empty.