CUSTOMVALIDATOR works but page goes on on FALSE

J

Jose Fernandez

Hola

I have this customvalidator

<asp:CustomValidator id="ComboValidator" runat="server"
ErrorMessage="CustomValidator" /> (The OnServerValidate method is set in
Events windows of the Control Property)


THIS IS THE METHOD
private void ValidarCombo(object sender, ServerValidateEventArgs e)
{
int counter=0;
foreach(Control control in this.Controls[1].Controls)
{
if(control.GetType().ToString().IndexOf("DropDownList")!=-1)
{
DropDownList combo=(DropDownList)control;
if(combo.SelectedItem.Value=="---")
{
counter++;
}
}
}
e.IsValid=(counter==0);
counter++;
}

It works perfectly. If a DropDownList is not selected, e.Valid is set to
false and also Page.IsValid BUT the page continues as if it was TRUE. Am I
missing something??
Thanks in advance
 
P

Peter Blum

Two things:

1. You must *always* test Page.IsValid in your Click event method before
saving. The Click event method gets called whether IsValid is true or false.
So its up to you to stop it from running your Save code.

2. If you are trying to prevent saving a "no selection" state, you can use
the RequiredFieldValidator. Just set its InitialText property to the value
of the no selection item. ("---" in your case, I think.)

--- Peter Blum
www.PeterBlum.com
Email: (e-mail address removed)
Creator of "Professional Validation And More" at
http://www.peterblum.com/vam/home.aspx
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,990
Messages
2,570,211
Members
46,796
Latest member
SteveBreed

Latest Threads

Top