all groups > asp.net webcontrols > december 2004 >
You're in the

asp.net webcontrols

group:

Checkbox, AutoPostBack & JavaScript


Checkbox, AutoPostBack & JavaScript Chris Walls
12/29/2004 1:09:19 PM
asp.net webcontrols: I have a CheckBox that when clicked, needs to first invoke a client-side
JavaScript function, then post back to the server. My ASP.NET code looks
like the following:

<asp:CheckBox ID="MyCheckBox" Runat="server" AutoPostBack="True"
OnCheckedChanged="OnMyCheckBoxCheckedChanged" />

I normally add JS code to a control by executing the following code in the
Page_Load method:

MyCheckBox.Attributes.Add("onclick", "DoSomethingFirst();");

However, the DoSomethingFirst() JS call is added to the generated SPAN tag
that surrounds the checkbox control, so my "DoSomethingFirst" function fires
*after* the AutoPostBack fires. How can I get my JS function to fire
*before* the AutoPostBack fires?

Thanks,
Chris



RE: Checkbox, AutoPostBack & JavaScript v-schang NO[at]SPAM online.microsoft.com
12/30/2004 3:32:55 AM
Hi Chris,

Thanks for your posting. As for the checkbox post back problem, it is
caused by the asp.net CheckBox control is encapsulated and we're hard to do
some additional customize. Currently if you want to add some other
clientscript before the CheckBox post back, we may have two options:

1. Manualy create a new checkBox class which derived from the asp.net's
CheckBox control and override the render method so as to insert our own
script before the build in "AutoPostBack" script (__doPostBack)

2. Use the InputCheckBox control in the System.Web.UI.HtmlControls
namespace and we can add a serverchange event for it and also handler its
clientside "onclick" script event. But we need to manually post back the
page when user click it at clientside, for example:

<input type="checkbox" id="chkClient" runat="server" value="..."
name="chkClient" onclick="alert('hello');document.forms[0].submit();"
onserverchange="chkServer_CheckedChanged">

in page's codebehind we have :

protected void chkServer_CheckedChanged(object sender, System.EventArgs e)
{
Response.Write("<br>CheckChanged at: " + DateTime.UtcNow.ToString());
}


Hope this helps. Thanks.

Regards,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)


Re: Checkbox, AutoPostBack & JavaScript Chris Walls
12/30/2004 7:16:40 AM
The second option worked just fine. Thanks for the help.

[quoted text, click to view]

Re: Checkbox, AutoPostBack & JavaScript v-schang NO[at]SPAM online.microsoft.com
12/31/2004 1:12:30 AM
You're Welcome Chris,

HAPPY HOLIDAYS.

Regards,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)
AddThis Social Bookmark Button