This documentation is archived and is not being maintained.

HtmlButton Class

Allows programmatic access to the HTML <button> tag on the server.

Namespace:  System.Web.UI.HtmlControls
Assembly:  System.Web (in System.Web.dll)

[AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
public class HtmlButton : HtmlContainerControl, IPostBackEventHandler
<asp:HtmlButton />

The <button> element allows Web developers to create user interface (UI) form buttons that can be composed of embedded HTML elements, including other server controls.


The <button> element is defined in the HTML 4.0 specification and is supported only in Microsoft Internet Explorer version 4.0 and later. To create UI form buttons for use in other browsers, consider using the HtmlInputImage class.

To perform a set of custom instructions when the HtmlButton control is clicked, provide a custom event handler for the ServerClick event.


The HtmlButton control renders ECMAScript to the client browser. The client browser must have ECMAScript enabled for this control to function properly. For more information on client script, see Client Script in ASP.NET Web Pages.

For a list of initial property values for an instance of HtmlButton, see the HtmlButton constructor.

Caution noteCaution:

This control can be used to display user input, which might include malicious client script. Check any information that is sent from a client for executable script, SQL statements, or other code before displaying it in your application. ASP.NET provides an input request validation feature to block script and HTML in user input. Validation server controls are also provided to assess user input. For more information, see Validation Server Control Syntax.

The following code example demonstrates how to use the ServerClick event to display the name entered in the text box.

<%@ Page Language="C#" AutoEventWireup="True" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
<html xmlns="" >
    <script language="C#" runat="server">

      protected void FancyBtn_Click(object sender, EventArgs e)
        Message.InnerHtml = "Your name is: " + Name.Value; 


    <head runat="server">
    <title> Enter Name: </title>
          <form id="form1" method="post" runat="server">

            <h3> Enter Name: <input id="Name" type="text" size="40" runat="server" />

             <button onserverclick=" FancyBtn_Click" runat="server" id="BUTTON1">
               <b><i> I'm a fancy HTML 4.0 button </i> </b> 

             <span id="Message" runat="server"></span>


Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

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.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0