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
- }