Bu soruna daha önce rastladım ama hiçbir zaman tam olarak çözemedim. Birkaç doğrulayıcıya ve aynı zamanda bir CustomValidator'a sahip bir formum var. CustomValidator'ın ValidationSummary ileti kutusuyla çalışmasını sağlayan zarif bir yol
<asp:Label ID="lblMemberNum" runat="server" Text="Membership #:" CssClass="LabelMedium" ></asp:Label>
<asp:TextBox ID="txtMemberNum" runat="server" CssClass="TextBox" ></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvMemberNum" SetFocusOnError="True" runat="server"
ControlToValidate="txtMemberNum" ErrorMessage="[ Membership # ] is required"
CssClass="ValidationMessage" Display="Dynamic" >*</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="revMemberNum" Display="Dynamic" runat="server"
ControlToValidate="txtMemberNum" CssClass="ValidationMessage"
ErrorMessage="[ Membership # ] can only contain letters"
ValidationExpression="^([a-zA-Z\d]+)$" >*</asp:RegularExpressionValidator>
<asp:CustomValidator ID="cvMemberNum" runat="server"
CssClass="ValidationMessage" Display="Dynamic"
ControlToValidate="txtMemberNum" ValidateEmptyText="false"
OnServerValidate="cvMemberNum_Validate"
ErrorMessage="This membership number is already registered">*</asp:CustomValidator>
<asp:ValidationSummary ID="ValidationSummary1" runat="server"
CssClass="ValidationMessage"
ShowMessageBox="True" ShowSummary="False" />
ve sunucu tarafında
:protected void cvMemberNum_Validate(object source, ServerValidateEventArgs args)
{
try
{
args.IsValid = (!CampaignRegistration.IsMemberRegistered(args.Value));
}
catch
{
args.IsValid = false;
}
}
Benim sorundur: ValidationSummary CustomValidator mesajı göstermez. Bu soru birkaç yerde sorulmuştur, ancak tatmin edici bir cevap görmedim.
Sorunun nerede olduğu konusunda emin değilim. Ancak, bunu deneyeceğim ve rapor edeceğim. –
Bir gözlem yaptıktan sonra yayınımı güncelledim. Lütfen onaylayın. –
Vurgulanan kod aslında tamam. Kullanıcı zaten kayıtlıysa doğrulama başarısız olur. Bu bölüm çalışıyor. Ne olur, '*' metin kutusunun yanında görünür, ancak ValidationSummary bir mesaj kutusu oluşturmaz. –