Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / ASP.NET / Building Controls / October 2006

Tip: Looking for answers? Try searching our database.

Change ErrorMessage Text Dynamically

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
jdp - 03 Oct 2006 18:13 GMT
Is there a way to set/change the ErrorMessage and/or Text property of
validationcontrols without making a trip to the server?  What I have so
far is a usercontrol that inherits from BaseValidator and overrides the
Pre_Render event in which I have javascript code to do validation.  I
also override the AddAttributesToRender event to point to my new
validation function.  I'm looking to have a central repository of
error messages so each developer doesn't have to figure one out.

Any feedback would be appreciated.

Thanks.
Brennan Stehling - 03 Oct 2006 22:18 GMT
It sounds like you are mixing a few things together.

First, you appear to be using the Validators the hard way.  Why touch
the PreRender event?   Simply use the CustomValidator instead of the
BaseValidator and implement the ServerValidate event.

http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.customvalidat
or.servervalidate.aspx


Then you can set the ClientValidationFunction which points to the
Javascript function which runs on the client-side.

http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.customvalidat
or.clientvalidationfunction.aspx


It will automatically use the values from your ErrorMessage and Text
properties.

Also, I believe what you want to do is maintain a common and shared set
of strings to be used across the application.  This is done in .NET
using Resource (.resx) files.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cp
conResourcesInResxFileFormat.asp


For the sake of simplicity, I would create a class exposing logically
named Properties which do lookups in the .resx shared file.  Then you
just add new entries in your .resx file, wrap it in the helper class
and every class which sets an ErrorMessage would use it.  Each
developer does not have to concern themselves with how it is loading
the string, but can easily access it.

Brennan Stehling
http://brennan.offwhite.net/blog/

> Is there a way to set/change the ErrorMessage and/or Text property of
> validationcontrols without making a trip to the server?  What I have so
[quoted text clipped - 7 lines]
>
> Thanks.
jdp - 04 Oct 2006 15:32 GMT
Thanks for the reply and please forgive me newness or simplicity in
these questions...

If I understand what you're saying, coding the ServerValidate event in
accordance with the ClientValidationFunction covers the possibility of
javascript being disabled on the client machine.  I'm trying to
eliminate the call to the server for validation.  The reason I'm using
BaseValidator is that it gives me ControlToCompare as well as
ControlToValidate.  Inheriting from CustomControl doesn't give me
ControlToCompare.  I'm trying to create a validating control that can
encompass all types of validation.  What I'm still missing is the piece
that modifies the ErrorMessage property dynamically.  For example, if
this field is required, I want the message to display 'Required' or if
it has an invalid format, display 'Invalid format', all of which is
done withouth going to the server.  If these messages change, I'd like
to have a place where they're stored so I just change the actual
message and the control will pick it up without recompiling the
control.

I'm basing my control on what was discussed here:
http://aspalliance.com/371_Creating_A_Designer_Enabled_Custom_Validator_Control_
Pt_II_Client_Side


Any feedback is appreciated.

> It sounds like you are mixing a few things together.
>
[quoted text clipped - 27 lines]
> Brennan Stehling
> http://brennan.offwhite.net/blog/
Brennan Stehling - 04 Oct 2006 16:14 GMT
Technically this is what you want to do...

http://brennan.offwhite.net/blog/2004/12/15/replacing-your-inner-html/

However, your Javascript function to test your control value and
finding the block to place your message is another issue.  If you are
using a ValidationSummary control you need to insert your new text in
place of what was there.

To my knowledge there is no Javascript API to adjust the ErrorMessage
on the client-side, but that would be quite useful.  I know it can be
done, but without spending some time working out the details I could
not tell you what to do.

I think your attempt to create the big daddy of all validators may be a
very difficult chore.  Look at how Peter Blum does it for some ideas.

http://www.peterblum.com/VAM/Home.aspx

Brennan Stehling
http://brennan.offwhite.net/blog/

> Thanks for the reply and please forgive me newness or simplicity in
> these questions...
[quoted text clipped - 51 lines]
> > Brennan Stehling
> > http://brennan.offwhite.net/blog/
jdp - 04 Oct 2006 16:50 GMT
Thanks, I will.

> Technically this is what you want to do...
>
[quoted text clipped - 17 lines]
> Brennan Stehling
> http://brennan.offwhite.net/blog/

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.