Button.OnClientClick Property
Assembly: System.Web (in System.Web.dll)
Use the OnClientClick property to specify additional client-side script that executes when a Button control's Click event is raised. The script that you specify for this property is rendered in the Button control's OnClick attribute in addition to the control's predefined client-side script.
This property cannot be set by themes or style sheet themes. For more information, see ThemeableAttribute and ASP.NET Themes and Skins Overview.
The following code example demonstrates how to use the OnClientClick property to specify additional client-side script that executes when a Button control is clicked.
<%@ page language="C#"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> void Button1_Click (object sender, EventArgs e) { Label1.Text = "Thank you for visiting our site."; } </script> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="head1" runat="server"> <title>Button.OnClientClick Example</title> </head> <body> <form id="form1" runat="server"> <h3>Button.OnClientClick Example</h3> <h4>Click to navigate to Microsoft.com:</h4> <asp:button id="Button1" usesubmitbehavior="true" text="Open Web site" onclientclick="Navigate()" runat="server" onclick="Button1_Click" /> <p></p> <asp:label id="Label1" runat="server"> </asp:label> </form> <script type="text/javascript"> function Navigate() { javascript:window.open("http://www.microsoft.com"); } </script> </body> </html>
Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
If you want to prevent the ASP.NET button from causing a postback, then have the Javascript function return false and set your on OnClientClick attribute as follows:
<asp:button ... onclientclick=" return Foo()" />
Javascript function:
function Foo()
{
alert('Hello world');
// It's the return false that prevents the postback, if you return true the postback will occur
return false;
}
******************************************************************************
This is not true. If you replace "alert('Hello world');" with "button.disabled=true;" no postback will occur, regardless of the return value.
in the javascript, you could do a WCF call and handle it all that way, completely prevents the postback and you can do anything within the DOM.
for the postback, obviously:
to have the button operate with a this.disabled=true, add an additional asp:button tag: UseSubmitBehavior="false"
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.usesubmitbehavior.aspx
http://www.codeproject.com/KB/ajax/disable_btn_on_click.aspx
- 12/9/2008
- Perley