Introduction
In this post I am explain How to add dynamic control and manage server side events in ASP.NETSteps :
Step - 1 : Create New Project.
Go to File > New > Project > Select asp.net web forms application > Entry Application Name > Click OK.Step-2: Add a Webpage and Design for show dynamically generated controls.
Go to Solution Explorer > Right Click on Project name form Solution Explorer > Add > New item > Select web form/ web form using master page under Web > Enter page name > Add.HTML Code
<h3>Dynamic Control Add & Fire Server Side Events</h3>
<div style="background-color: #CCFFCC">
<%-- This Label added for show message after click button which are dinamically created --%>
<asp:Label ID="lblMessage" runat="server" Text="No Button Clicked!" Font-Bold="True" Font-Size="20pt"></asp:Label>
<%-- Panel will contain dynamically generated buttons --%>
<asp:Panel ID="pnlButtonContainer" runat="server"></asp:Panel>
</div>
Step-3: Write function for Create & render server control into webpage.
private void AddButtons(int noOfButton)
{
for (int i = 0; i < noOfButton; i++)
{
Button b = new Button();
b.ID = "Button" + (i+1);
b.Text = "Button" + (i + 1);
// This below line added for find out which button is clicked
b.CommandArgument = "Button" + (i + 1);
// generate Click event
b.Click += new EventHandler(this.ButtonClick);
// this line will add control in Panel (render control in page)
pnlButtonContainer.Controls.Add(b);
}
}
protected void ButtonClick(object sender, EventArgs e)
{
lblMessage.Text = ((Button)sender).CommandArgument + " Clicked";
}
Step-4: Write code in page load event for call function which is responsible for create dynamic control
Here you will notice that, I have called function which is responsible for create dynamic control in page load event. This will create control eachtime page is loaded. Other wise we have to face a common problem "dynamically generated controls disappear postback". protected void Page_Load(object sender, EventArgs e)
{
// Here call function for create dynamic control
AddButtons(5);
// this function is required to call for each postback because no view state is stored when generate
// dynamic control
}
