In this article I will explain with an example, how to create dynamic Button, LinkButton and ImageButton in ASP.Net using C# and VB.Net.
This article will also explain how to attach click event handlers to dynamic Button, LinkButton and ImageButton controls when using Master Pages and Content Pages in ASP.Net.
 
 

Create Dynamic Button, LinkButton and ImageButton

HTML Markup

The following HTML Markup consists of:
Panel – For adding dynamic Button, LinkButton and ImageButton.
<asp:Panel ID="pnlControls" runat="server"></asp:Panel>
 

Code

Inside the Page Load event handler, the dynamic Button, LinkButton and ImageButton are created and added to the Panel control.
The dynamic Button, LinkButton and ImageButton are assigned with dynamic Click event handlers and inside each dynamic Click event handlers, a JavaScript Alert Message Box is displayed.
C#
protected void Page_Load(object sender, EventArgs e)
{
     Button btnDetails = new Button();
     btnDetails.ID = "Button";
     btnDetails.Text = "Button";
     btnDetails.Click += new EventHandler(OnClick);
     pnlControls.Controls.Add(btnDetails);
 
     LinkButton lnkDetails = new LinkButton();
     lnkDetails.ID = "LinkButton";
     lnkDetails.Text = "LinkButton";
     lnkDetails.Click += new EventHandler(OnLinkClick);
     pnlControls.Controls.Add(lnkDetails);
 
     ImageButton imgDetails = new ImageButton();
     imgDetails.ID = "ImageButton";
     imgDetails.ImageUrl = "~/Images/Orange_Small.png";
     imgDetails.Click += new ImageClickEventHandler(OnImageClick);
     pnlControls.Controls.Add(imgDetails);
}
 
protected void OnClick(object sender, EventArgs e)
{
    ClientScript.RegisterStartupScript(this.GetType(), "Button_Alert""alert('Button is clicked!');"true); 
}
 
protected void OnLinkClick(object sender, EventArgs e)
{
    ClientScript.RegisterStartupScript(this.GetType(), "LinkButton_Alert""alert('LinkButton is clicked!');"true); 
}
 
protected void OnImageClick(object sender, ImageClickEventArgs e)
{
    ClientScript.RegisterStartupScript(this.GetType(), "ImageButton_Alert""alert('ImageButton is clicked!');"true); 
}
 
VB.Net
Protected Sub Page_Load(ByVal sender As ObjectByVal e As EventArgs) Handles Me.Load
     Dim btnDetails As Button = New Button
     btnDetails.ID = "Button"
     btnDetails.Text = "Button"
     AddHandler btnDetails.Click, AddressOf Me.OnClick
     pnlControls.Controls.Add(btnDetails)
 
     Dim lnkDetails As LinkButton = New LinkButton
     lnkDetails.ID = "LinkButton"
     lnkDetails.Text = "LinkButton"
     AddHandler lnkDetails.Click, AddressOf Me.OnLinkClick
     pnlControls.Controls.Add(lnkDetails)
 
     Dim imgDetails As ImageButton = New ImageButton
     imgDetails.ID = "ImageButton"
     imgDetails.ImageUrl = "~/Images/Orange_Small.png"
     AddHandler imgDetails.Click, AddressOf Me.OnImageClick
     pnlControls.Controls.Add(imgDetails)
End Sub
 
Protected Sub OnClick(ByVal sender As ObjectByVal e As EventArgs)
    ClientScript.RegisterStartupScript(Me.GetType, "Button_Alert""alert('Button is clicked!');"True)
End Sub
 
Protected Sub OnLinkClick(ByVal sender As ObjectByVal e As EventArgs)
    ClientScript.RegisterStartupScript(Me.GetType, "LinkButton_Alert""alert('LinkButton is clicked!');"True)
End Sub
 
Protected Sub OnImageClick(ByVal sender As ObjectByVal e As ImageClickEventArgs)
    ClientScript.RegisterStartupScript(Me.GetType, "ImageButton_Alert""alert('ImageButton is clicked!');"True)
End Sub
 
 

Create Dynamic Button, LinkButton and ImageButton with Master Page

Master Page HTML Markup

The following HTML Markup consists of:
ContentPlaceHolder – For defining region for content.
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <asp:ContentPlaceHolder ID="head" runat="server"></asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">
        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"></asp:ContentPlaceHolder>
    </form>
</body>
</html>
 

Content Page HTML Markup

The following HTML Markup consists of:
Content – For adding server controls to render to the ContentPlaceHolder control in a master page.
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"></asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"></asp:Content>
 

Code

Inside the Page Load event, the dynamic Button, LinkButton and ImageButton are created and added to the ContentPlaceHolder.
The dynamic Button, LinkButton and ImageButton are assigned dynamic Click event handlers and inside each dynamic Click event handler, a JavaScript Alert Message Box is displayed.
C#
protected void Page_Load(object sender, EventArgs e)
{
     ContentPlaceHolder content = (ContentPlaceHolder)this.Master.FindControl("ContentPlaceHolder1");
     Button btnDetails = new Button();
     btnDetails.ID = "Button";
     btnDetails.Text = "Button";
     btnDetails.Click += new EventHandler(OnClick);
     content.Controls.Add(btnDetails);
 
     LinkButton lnkDetails = new LinkButton();
     lnkDetails.ID = "LinkButton";
     lnkDetails.Text = "LinkButton";
     lnkDetails.Click += new EventHandler(OnLinkClick);
     content.Controls.Add(lnkDetails);
 
     ImageButton imgDetails = new ImageButton();
     imgDetails.ID = "ImageButton";
     imgDetails.ImageUrl = "~/Images/Orange_Small.png";
     imgDetails.Click += new ImageClickEventHandler(OnImageClick);
     content.Controls.Add(imgDetails);
}
 
protected void OnClick(object sender, EventArgs e)
{
    ClientScript.RegisterStartupScript(this.GetType(), "Button_Alert""alert('Button is clicked!');"true); 
}
 
protected void OnLinkClick(object sender, EventArgs e)
{
    ClientScript.RegisterStartupScript(this.GetType(), "LinkButton_Alert""alert('LinkButton is clicked!');"true); 
}
 
protected void OnImageClick(object sender, ImageClickEventArgs e)
{
    ClientScript.RegisterStartupScript(this.GetType(), "ImageButton_Alert""alert('ImageButton is clicked!');"true); 
}
 
VB.Net
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    Dim content As ContentPlaceHolder = DirectCast(Me.Master.FindControl("ContentPlaceHolder1"), ContentPlaceHolder)
 
    Dim btnDetails As Button = New Button
    btnDetails.ID = "Button"
    btnDetails.Text = "Button"
    AddHandler btnDetails.Click, AddressOf Me.OnClick
    content.Controls.Add(btnDetails)
 
    Dim lnkDetails As LinkButton = New LinkButton
    lnkDetails.ID = "LinkButton"
    lnkDetails.Text = "LinkButton"
    AddHandler lnkDetails.Click, AddressOf Me.OnLinkClick
    content.Controls.Add(lnkDetails)
 
    Dim imgDetails As ImageButton = New ImageButton
    imgDetails.ID = "ImageButton"
    imgDetails.ImageUrl = "~/Images/Orange_Small.png"
    AddHandler imgDetails.Click, AddressOf Me.OnImageClick
    content.Controls.Add(imgDetails)
End Sub
 
Protected Sub OnClick(ByVal sender As ObjectByVal e As EventArgs)
    ClientScript.RegisterStartupScript(Me.GetType, "Button_Alert""alert('Button is clicked!');"True)
End Sub
 
Protected Sub OnLinkClick(ByVal sender As ObjectByVal e As EventArgs)
    ClientScript.RegisterStartupScript(Me.GetType, "LinkButton_Alert""alert('LinkButton is clicked!');"True)
End Sub
 
Protected Sub OnImageClick(ByVal sender As ObjectByVal e As ImageClickEventArgs)
    ClientScript.RegisterStartupScript(Me.GetType, "ImageButton_Alert""alert('ImageButton is clicked!');"True)
End Sub
 
 

Screenshot

Creating Dynamic Button LinkButton and ImageButton in ASP.Net
 
 

Downloads