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 Object, ByVal 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 Object, ByVal e As EventArgs)
ClientScript.RegisterStartupScript(Me.GetType, "Button_Alert", "alert('Button is clicked!');", True)
End Sub
Protected Sub OnLinkClick(ByVal sender As Object, ByVal e As EventArgs)
ClientScript.RegisterStartupScript(Me.GetType, "LinkButton_Alert", "alert('LinkButton is clicked!');", True)
End Sub
Protected Sub OnImageClick(ByVal sender As Object, ByVal 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 Object, ByVal e As EventArgs)
ClientScript.RegisterStartupScript(Me.GetType, "Button_Alert", "alert('Button is clicked!');", True)
End Sub
Protected Sub OnLinkClick(ByVal sender As Object, ByVal e As EventArgs)
ClientScript.RegisterStartupScript(Me.GetType, "LinkButton_Alert", "alert('LinkButton is clicked!');", True)
End Sub
Protected Sub OnImageClick(ByVal sender As Object, ByVal e As ImageClickEventArgs)
ClientScript.RegisterStartupScript(Me.GetType, "ImageButton_Alert", "alert('ImageButton is clicked!');", True)
End Sub
Screenshot
Downloads