In this article I will explain with an example, how to handle Click event of dynamically generated 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.
 
 
Handle Click event of dynamically generated Button, LinkButton and ImageButton
HTML Markup
The HTML Markup consists of an ASP.Net Panel control. The dynamic Button, LinkButton and ImageButton will be added to the Panel control.
<asp:Panel ID = "Panel1" runat="server">
</asp:Panel>
 
Code
Inside the Page Load event, the dynamic Button, LinkButton and ImageButton are created and added to the Panel control.
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)
{
    Button btn = new Button();
    btn.ID = "Button1";
    btn.Text = "Button1";
    btn.Click += new EventHandler(Button1_Click);
    Panel1.Controls.Add(btn);
 
    LinkButton lnk = new LinkButton();
    lnk.ID = "LinkButton1";
    lnk.Text = "LinkButton1";
    lnk.Click += new EventHandler(LinkButton1_Click);
    Panel1.Controls.Add(lnk);
 
    ImageButton img = new ImageButton();
    img.ID = "ImageButton1";
    img.ImageUrl = "~/Images/Orange_Small.png";
    img.Click += new ImageClickEventHandler(ImageButton1_Click);
    Panel1.Controls.Add(img);
}
 
protected void Button1_Click(object sender, EventArgs e)
{
    ClientScript.RegisterStartupScript(this.GetType(), "Button_Alert", "alert('Button clicked!');", true);
}
 
protected void LinkButton1_Click(object sender, EventArgs e)
{
    ClientScript.RegisterStartupScript(this.GetType(), "LinkButton_Alert", "alert('LinkButton clicked!');", true);
}
 
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
    ClientScript.RegisterStartupScript(this.GetType(), "ImageButton_Alert", "alert('ImageButton clicked!');", true);
}
 
VB.Net
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
    Dim btn As Button = New Button
    btn.ID = "Button1"
    btn.Text = "Button1"
    AddHandler btn.Click, AddressOf Me.Button1_Click
    Panel1.Controls.Add(btn)
 
    Dim lnk As LinkButton = New LinkButton
    lnk.ID = "LinkButton1"
    lnk.Text = "LinkButton1"
    AddHandler lnk.Click, AddressOf Me.LinkButton1_Click
    Panel1.Controls.Add(lnk)
 
    Dim img As ImageButton = New ImageButton
    img.ID = "ImageButton1"
    img.ImageUrl = "~/Images/Orange_Small.png"
    AddHandler img.Click, AddressOf Me.ImageButton1_Click
    Panel1.Controls.Add(img)
End Sub
 
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
    ClientScript.RegisterStartupScript(Me.GetType, "Button_Alert", "alert('Button clicked!');", True)
End Sub
 
Protected Sub LinkButton1_Click(ByVal sender As Object, ByVal e As EventArgs)
    ClientScript.RegisterStartupScript(Me.GetType, "LinkButton_Alert", "alert('LinkButton clicked!');", True)
End Sub
 
Protected Sub ImageButton1_Click(ByVal sender As Object, ByVal e As ImageClickEventArgs)
    ClientScript.RegisterStartupScript(Me.GetType, "ImageButton_Alert", "alert('ImageButton clicked!');", True)
End Sub
 
 
Handle Click event of dynamically generated Button, LinkButton and ImageButton with Master Page
Master Page HTML Markup
The HTML Markup consists of Master Page which consists of a ContentPlaceHolder.
<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">
    <div>
        <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
        </asp:ContentPlaceHolder>
    </div>
    </form>
</body>
</html>
 
Content Page HTML Markup
The HTML Markup of Content Page consists of the ContentPlaceHolders.
<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 btn = new Button();
    btn.ID = "Button1";
    btn.Text = "Button1";
    btn.Click += new EventHandler(Button1_Click);
    content.Controls.Add(btn);
 
    LinkButton lnk = new LinkButton();
    lnk.ID = "LinkButton1";
    lnk.Text = "LinkButton1";
    lnk.Click += new EventHandler(LinkButton1_Click);
    content.Controls.Add(lnk);
 
    ImageButton img = new ImageButton();
    img.ID = "ImageButton1";
    img.ImageUrl = "~/Images/Orange_Small.png";
    img.Click += new ImageClickEventHandler(ImageButton1_Click);
    content.Controls.Add(img);
}
 
protected void Button1_Click(object sender, EventArgs e)
{
    ClientScript.RegisterStartupScript(this.GetType(), "Button_Alert", "alert('Button clicked!');", true);
}
 
protected void LinkButton1_Click(object sender, EventArgs e)
{
    ClientScript.RegisterStartupScript(this.GetType(), "LinkButton_Alert", "alert('LinkButton clicked!');", true);
}
 
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
    ClientScript.RegisterStartupScript(this.GetType(), "ImageButton_Alert", "alert('ImageButton 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 btn As Button = New Button
    btn.ID = "Button1"
    btn.Text = "Button1"
    AddHandler btn.Click, AddressOf Me.Button1_Click
    content.Controls.Add(btn)
 
    Dim lnk As LinkButton = New LinkButton
    lnk.ID = "LinkButton1"
    lnk.Text = "LinkButton1"
    AddHandler lnk.Click, AddressOf Me.LinkButton1_Click
    content.Controls.Add(lnk)
 
    Dim img As ImageButton = New ImageButton
    img.ID = "ImageButton1"
    img.ImageUrl = "~/Images/Orange_Small.png"
    AddHandler img.Click, AddressOf Me.ImageButton1_Click
    content.Controls.Add(img)
End Sub
 
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
    ClientScript.RegisterStartupScript(Me.GetType, "Button_Alert", "alert('Button clicked!');", True)
End Sub
 
Protected Sub LinkButton1_Click(ByVal sender As Object, ByVal e As EventArgs)
    ClientScript.RegisterStartupScript(Me.GetType, "LinkButton_Alert", "alert('LinkButton clicked!');", True)
End Sub
 
Protected Sub ImageButton1_Click(ByVal sender As Object, ByVal e As ImageClickEventArgs)
    ClientScript.RegisterStartupScript(Me.GetType, "ImageButton_Alert", "alert('ImageButton clicked!');", True)
End Sub
 
 
Screenshot
Handle Click event of dynamically generated Button, LinkButton and ImageButton in ASP.Net
 
 
Downloads