469,282 Members | 1,905 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,282 developers. It's quick & easy.

RequiredValidator not working

I have the following:

<asp:textbox id="ProfileName" columns="45" runat="server" />
<asp:RequiredFieldValidator
ControlToValidate="ProfileName"
Display="Dynamic"
Text="Name Required"
runat="server" />

I also have an imagebutton that goes to a routine to save a record

<asp:ImageButton ID="SaveRecord" runat="server" Visible="true"
OnClick="ModifyRecord_Click" ImageUrl="../../buttons/SaveChanges_0.gif" />

I put nothing in the ProfileName field and it still goes to the function
ModifyRecord_Click instead of displaying the "Name Required" message.

Why is it not working?

Thanks,

Tom
Nov 19 '05 #1
7 3418
TJS
I have a similar problem and wonder if this is like mine.

Are you having this problem in both IE and Firefox browsers ?
Are you prepopulating the field for the user to show the current value from
a datastore ?
Nov 19 '05 #2
"TJS" <no****@here.com> wrote in message
news:uJ**************@TK2MSFTNGP15.phx.gbl...
I have a similar problem and wonder if this is like mine.

Are you having this problem in both IE and Firefox browsers ?
Are you prepopulating the field for the user to show the current value
from a datastore ?


Actually,

It does it with both.

But I also was getting an error before in the function the button was
calling, so I assume the validator wasn't being called.

I assumed that because I got the error, the validator didn't work.

What is happening is that the function is being called after the Validator
has run?

I thought if there was an error, the function wouldn't be called. Am I
wrong here?

Thanks,

Tom

Nov 19 '05 #3
TJS
You're right, the function should not be called if the page is not valid

since it fails in both browsers, and you aren't prefilling the form, I would
need to see your code for "ModifyRecord_Click" to determine of the problem
is there.


Nov 19 '05 #4
"TJS" <no****@here.com> wrote in message
news:uN*************@TK2MSFTNGP15.phx.gbl...
You're right, the function should not be called if the page is not valid

since it fails in both browsers, and you aren't prefilling the form, I
would need to see your code for "ModifyRecord_Click" to determine of the
problem is there.


Actually, what I did to make it work is:

Sub ModifyRecord_Click(sendor as Object, e as ImageClickEventArgs)

if not Page.isValid then
exit Sub
End If

I guessed the function does get called, so I just added that code to solve
the problem.

Tom
Nov 19 '05 #5
"tshad" <ts**********@ftsolutions.com> wrote in message
news:OS**************@TK2MSFTNGP09.phx.gbl...
"TJS" <no****@here.com> wrote in message
news:uN*************@TK2MSFTNGP15.phx.gbl...
You're right, the function should not be called if the page is not valid

since it fails in both browsers, and you aren't prefilling the form, I
would need to see your code for "ModifyRecord_Click" to determine of the
problem is there.


Actually, what I did to make it work is:

Sub ModifyRecord_Click(sendor as Object, e as ImageClickEventArgs)

if not Page.isValid then
exit Sub
End If

I guessed the function does get called, so I just added that code to solve
the problem.

Tom

Nov 19 '05 #6
"tshad" <ts**********@ftsolutions.com> wrote in message
news:OS**************@TK2MSFTNGP09.phx.gbl...
"TJS" <no****@here.com> wrote in message
news:uN*************@TK2MSFTNGP15.phx.gbl...
You're right, the function should not be called if the page is not valid

since it fails in both browsers, and you aren't prefilling the form, I
would need to see your code for "ModifyRecord_Click" to determine of the
problem is there.

Actually, what I did to make it work is:

Sub ModifyRecord_Click(sendor as Object, e as ImageClickEventArgs)

if not Page.isValid then
exit Sub
End If

I guessed the function does get called, so I just added that code to solve
the problem.


Now the problem is in my other routine, which is called by my LinkButton
(the Modify routine was called by an ImageButton).

The code is the same:

Sub DeleteProfile_Click(sender as Object, e as EventArgs)
trace.warn("inside SelectProfile")

if not Page.isValid then
exit Sub
End If

But when I do it I get the error:

Page.IsValid cannot be called before validation has taken place. It should
be queried in the event handler for a control with CausesValidation=True or
after a call to Page.Validate.

So in the Modify function, the validate function is being called and in the
Delete function it is not ???????

Tom Tom

Nov 19 '05 #7
The method Page.Validate() is called automatically by each of Microsoft's
submit controls (Button, ImageButton, and LinkButton) unless you set
CausesValidation to false. If its not called, you cannot use Page.IsValid as
you've found.

The submit controls call it in their OnClick method (which then fires your
Click event handler). It runs after Page_Load.
- Make sure CausesValidation=true or you call Page.Validate() before calling
Page.IsValid
- Don't call any of this from within Page_Load. Let it happen in the post
back event methods.
- If you are using CausesValidation=false because you don't want to validate
every validator, call individual validator's Validate() methods. Then check
the IsValid property on those individual validators.
- This is all server side code. It should not be affected by the browser
type.
- It is possible that if javascript is not working, your Click post back
event will not run. This happens when your submit control calls
__doPostBack() on the client-side to set itself up for server side
processing. Without javascript running, __doPostBack() never runs.

--- Peter Blum
www.PeterBlum.com
Email: PL****@PeterBlum.com
Creator of "Professional Validation And More" at
http://www.peterblum.com/vam/home.aspx

"tshad" <ts**********@ftsolutions.com> wrote in message
news:OF****************@TK2MSFTNGP14.phx.gbl...
"tshad" <ts**********@ftsolutions.com> wrote in message
news:OS**************@TK2MSFTNGP09.phx.gbl...
"TJS" <no****@here.com> wrote in message
news:uN*************@TK2MSFTNGP15.phx.gbl...
You're right, the function should not be called if the page is not valid

since it fails in both browsers, and you aren't prefilling the form, I
would need to see your code for "ModifyRecord_Click" to determine of the
problem is there.


Actually, what I did to make it work is:

Sub ModifyRecord_Click(sendor as Object, e as ImageClickEventArgs)

if not Page.isValid then
exit Sub
End If

I guessed the function does get called, so I just added that code to
solve the problem.


Now the problem is in my other routine, which is called by my LinkButton
(the Modify routine was called by an ImageButton).

The code is the same:

Sub DeleteProfile_Click(sender as Object, e as EventArgs)
trace.warn("inside SelectProfile")

if not Page.isValid then
exit Sub
End If

But when I do it I get the error:

Page.IsValid cannot be called before validation has taken place. It should
be queried in the event handler for a control with CausesValidation=True
or after a call to Page.Validate.

So in the Modify function, the validate function is being called and in
the Delete function it is not ???????

Tom
Tom


Nov 19 '05 #8

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

3 posts views Thread by SStory | last post: by
5 posts views Thread by Martin Heuckeroth | last post: by
1 post views Thread by Elie Medeiros via .NET 247 | last post: by
5 posts views Thread by tshad | last post: by
8 posts views Thread by jojobar | last post: by
2 posts views Thread by Niraj Sikotara | last post: by
1 post views Thread by CARIGAR | last post: by
reply views Thread by zhoujie | last post: by
reply views Thread by suresh191 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.