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 / General / December 2007

Tip: Looking for answers? Try searching our database.

Validating CheckBoxes on the ClientSide

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
mc - 13 Dec 2007 11:24 GMT
I've not been able to get a Check box to client side validated on postback. with my changes I can
get it to work on the serverside ok but not on the client.

I have created a new control as below:-

[ValidationProperty("ValidationValue")]
public class ValidifiableCheckBox: CheckBox
{
    public string ValidationValue{
        get { return (this.checked ? bool.TrueString : string.Empty); }
    }
}

this gives me a CheckBox that the Validators will except (rather than throwing an exception about
not being able to validate them), If I use it with a RequiredFieldValidator, the Serverside events
valdiation works however it doesn't seem to trap it on the client, my page code is bellow: -

<myControls:ValidifiableCheckBox ID="cbAgree" runat="server"/>
<asp:RequiredFiledValidator ID="rfvAgree" runat="server" ControlToValidate="cbAgree"
ErrorMessage="Oh Dear" Text="*"/>
<asp:ValidationSummary ID="vsAgree" runat="server" ShowMessageBox="true" ShowSummary="false"/>

Any ideas?

Why did microsoft not make the CheckBox control validatable?
Patrice - 13 Dec 2007 12:22 GMT
Well a checkbox is basically either checked or unchecked so having the
special case were the user has to check the checkbox were likely not MS top
priority (my understainding is that you want to display a checkbox that is
necessarily checked).

Also I would try a compareValidator rather than a requiredfield validator
(you want the value to be true, "on" or whatever else is used for a checked
box, if the box is unchecked it doesn't mean IMO that a value hasn't been
provided but that the value provided by the user is just "false").

Finally if you have to create your own validator, see for example
http://aspnet.4guysfromrolla.com/articles/073102-1.aspx. Server validation
is fine but AFAIK you have to provide client side validation code if you
want to validate this client side (server side code runs server side and
can't be run or won't be transformed automatically for the client side
handling).

--
Patrice

> I've not been able to get a Check box to client side validated on
> postback. with my changes I can get it to work on the serverside ok but
[quoted text clipped - 25 lines]
>
> Why did microsoft not make the CheckBox control validatable?
mc - 13 Dec 2007 13:08 GMT
Thanks for your response, Whilst waiting for a response I've already investigated the custom
validator, however, when I try to get the "args.Value" in my clientside code I always get the value
"on" regardless of state.

Here is my code from my custom validator can you spot any errors?

protected void Page_Load(object sender, EventArgs e){
string csValidFunc = "function ClientValidateVCB(source, args){" + Environment.NewLine +
"    args.IsValid = (args.Value == '" + bool.TrueString + "');" + Environment.NewLine +
"}";
ClientScript.RegisterClientScriptBlock(this.GetType(), "ClientValidateVCB", csValidFunc, true);
}

protected void cvAgree_ServerValidate(object source, ServerValidateEventArgs args)
{
    args.IsValid = (args.Value == bool.TrueString);
}

> Well a checkbox is basically either checked or unchecked so having the
> special case were the user has to check the checkbox were likely not MS top
[quoted text clipped - 45 lines]
>>
>>Why did microsoft not make the CheckBox control validatable?
Steven Cheng[MSFT] - 14 Dec 2007 03:35 GMT
Hi MC,

As for ASP.NET CheckBox control, it does be a particular one which can not
be used directly by any built-in validators except the CustomValidator
control. Also, even for custom validator, you still need to particularly
customize the validation function(client script). Here is a forum article
which provide an example on how to use custom valiator to validate checkbox:

#Control 'CheckBox1' referenced by the ControlToValidate property
http://www.syncfusion.com/FAQ/aspnet/WEB_c18c.aspx#q464q

and another article provide good example on impleneting custom validator:

#Implementing custom validation in ASP.NET with the CustomValidator class
http://www.kuam.com/techtalk/customvalidatorclass.htm

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead

This posting is provided "AS IS" with no warranties, and confers no rights.

--------------------
>Date: Thu, 13 Dec 2007 13:08:24 +0000
>From: mc <mc@community.nospam>
[quoted text clipped - 68 lines]
>>>
>>>Why did microsoft not make the CheckBox control validatable?
mc - 14 Dec 2007 09:23 GMT
Thanks for that, this was the solution I stumbled across myself. However I was hoping that I would
be able to work with args.Value, and have clean generic functions is there not anything I could do
with my inherited control to make it correctly validatable?

Is there a bug or issue within asp.net which means the "Team" couldn't make the CheckBox validatable?

Thanks

MC

> Hi MC,
>
[quoted text clipped - 133 lines]
>>>>
>>>>Why did microsoft not make the CheckBox control validatable?
Steven Cheng[MSFT] - 17 Dec 2007 03:15 GMT
Thanks for your reply MC,

So far this seems a limitation due to the existing CheckBox control's
implementation. I suggest you post this issue to the product feedback
center so that the product team can receive feedback on this:

http://connect.microsoft.com/feedback/default.aspx?SiteID=210

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead
   

This posting is provided "AS IS" with no warranties, and confers no rights.
--------------------
>Date: Fri, 14 Dec 2007 09:23:14 +0000
>From: mc <mc@community.nospam>
[quoted text clipped - 34 lines]
>>
>> This posting is provided "AS IS" with no warranties, and confers no rights.
Patrice - 14 Dec 2007 08:07 GMT
IMO the problem is that the checkbox input control doesn"t have a value
property. What is the bool variable you are referring to ?

IMO you should use somewhere the checked property (and you'll have to get
this value by yourself).

--
Patrice

> Thanks for your response, Whilst waiting for a response I've already
> investigated the custom validator, however, when I try to get the
[quoted text clipped - 69 lines]
>>>
>>>Why did microsoft not make the CheckBox control validatable?
mc - 14 Dec 2007 10:40 GMT
bool is not a variable. It is a reference to the static field "TrueString" of the bool type. See
here for a full explanation.

http://msdn2.microsoft.com/en-us/library/system.boolean.truestring(VS.71).aspx

The theory of my first post is that the control below, should give you a check box with the correct
value defined. so it can be used in the validators. It works server side but client side it fails.

[ValidationProperty("ValidationValue")]
public class ValidifiableCheckBox : CheckBox
{
    public string ValidationValue{
        get { return (this.checked ? bool.TrueString : string.Empty); }
    }
}

it could also be validly defined as: -

[ValidationProperty("Wibble")]
public class CheckBoxWithValue : CheckBox
{
    public string Wibble{
        get { return (this.checked ? bool.TrueString : string.Empty); }
    }
}
If in the ServerValidate you access args.Value you will get the output of Wibble, however this
doesn't change the client side functionality which always just returns "on". regardless of checked
state.

> IMO the problem is that the checkbox input control doesn"t have a value
> property. What is the bool variable you are referring to ?
[quoted text clipped - 78 lines]
>>>>
>>>>Why did microsoft not make the CheckBox control validatable?

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



©2008 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.