asp.net 2.0
I'm creating a web site where people must register to get access to
restricted area. In the CreateUserWizard control I've added a check on email
is unique (see the code below).. The problem is that this UniqueEmail method
isn't triggered when leaving the Email field or submitting the
CreateUserWizard (click on the finish button)
<asp:CustomValidator ID="valUniqueEmail" runat="server" ErrorMessage="Your
Email address is already taken" ControlToValidate="Email"
OnServerValidate="UniqueEmail"></asp:CustomValidator>
protected void UniqueEmail(object source, ServerValidateEventArgs args)
{
MembershipUserCollection allUsers = Membership.GetAllUsers();
Debug.WriteLine("UniqueEmail");
foreach (MembershipUser user in allUsers)
{
if (user.Email == args.Value)
{
Debug.WriteLine("Testing " + user.UserName + " against " +
args.Value);
args.IsValid = false;
}
}
}
Any suggestions?
JeffHi Jeff,
Few things:
1. If EnableClientValidation is set to false, when you leav the control,
validation is not preformed (value is only validated when page is posted
back). In addition to that, CustomValidator control exposes ValidateEmptyText
property, which should be set to true if you expect empty text is considered
as a valid value for validation.
2. Because you're utilizing event wire up, make sure AutoEventWireup is set
to true in <@.Page directive
3. Any chances submit button has CausesValidation property set to false?
Hope it helps
Milosz
"Jeff" wrote:
Quote:
Originally Posted by
Hey
>
asp.net 2.0
>
I'm creating a web site where people must register to get access to
restricted area. In the CreateUserWizard control I've added a check on email
is unique (see the code below).. The problem is that this UniqueEmail method
isn't triggered when leaving the Email field or submitting the
CreateUserWizard (click on the finish button)
>
<asp:CustomValidator ID="valUniqueEmail" runat="server" ErrorMessage="Your
Email address is already taken" ControlToValidate="Email"
OnServerValidate="UniqueEmail"></asp:CustomValidator>
>
protected void UniqueEmail(object source, ServerValidateEventArgs args)
{
MembershipUserCollection allUsers = Membership.GetAllUsers();
Debug.WriteLine("UniqueEmail");
foreach (MembershipUser user in allUsers)
{
if (user.Email == args.Value)
{
Debug.WriteLine("Testing " + user.UserName + " against " +
args.Value);
args.IsValid = false;
}
}
}
>
Any suggestions?
>
Jeff
>
>
>
Thank you!
I've just manage to solve it. The markup of the CustomValidator was missing:
ValidationGroup="CreateUserWizard1"
Jeff
"Milosz Skalecki [MCAD]" <mily242@.DONTLIKESPAMwp.plwrote in message
news:504C4D4E-323A-460A-90AE-1A4CDEAD8237@.microsoft.com...
Quote:
Originally Posted by
Hi Jeff,
>
Few things:
>
1. If EnableClientValidation is set to false, when you leav the control,
validation is not preformed (value is only validated when page is posted
back). In addition to that, CustomValidator control exposes
ValidateEmptyText
property, which should be set to true if you expect empty text is
considered
as a valid value for validation.
>
2. Because you're utilizing event wire up, make sure AutoEventWireup is
set
to true in <@.Page directive
>
3. Any chances submit button has CausesValidation property set to false?
>
Hope it helps
>
Milosz
>
"Jeff" wrote:
>
Quote:
Originally Posted by
>Hey
>>
>asp.net 2.0
>>
>I'm creating a web site where people must register to get access to
>restricted area. In the CreateUserWizard control I've added a check on
>email
>is unique (see the code below).. The problem is that this UniqueEmail
>method
>isn't triggered when leaving the Email field or submitting the
>CreateUserWizard (click on the finish button)
>>
><asp:CustomValidator ID="valUniqueEmail" runat="server"
>ErrorMessage="Your
>Email address is already taken" ControlToValidate="Email"
>OnServerValidate="UniqueEmail"></asp:CustomValidator>
>>
>protected void UniqueEmail(object source, ServerValidateEventArgs args)
>{
> MembershipUserCollection allUsers = Membership.GetAllUsers();
> Debug.WriteLine("UniqueEmail");
> foreach (MembershipUser user in allUsers)
> {
> if (user.Email == args.Value)
> {
> Debug.WriteLine("Testing " + user.UserName + " against " +
>args.Value);
> args.IsValid = false;
> }
> }
>}
>>
>Any suggestions?
>>
>Jeff
>>
>>
>>
0 comments:
Post a Comment