Add a control to a page dynamically : Controls « Page Lifecycle « ASP.NET Tutorial






<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="DynamicButton" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
          <asp:Panel id="Panel1" runat="server" Width="364px" Height="142px">
        
          <asp:Label id=Label1 runat="server">(No value.)</asp:Label>
        
          <asp:PlaceHolder id="PlaceHolder1" runat="server"></asp:PlaceHolder>
          <asp:Button id="cmdReset" runat="server" Width="112px" Text="Reset Text" OnClick="cmdReset_Click"></asp:Button><br/>
        
          <hr/>

      </asp:Panel>
    </div>
    </form>
</body>
</html>


File: Default.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class DynamicButton : System.Web.UI.Page
{
    private void Page_Load(object sender, EventArgs e)
    {
    Button newButton = new Button();
    newButton.Text = "Dynamic Button";
    newButton.ID = "newButton";

    newButton.Click += new System.EventHandler(this.Button_Click);

    PlaceHolder1.Controls.Add(newButton);
    }

  protected void Button_Click(object sender, System.EventArgs e)
  {
    Label1.Text = "You clicked the dynamic button.";
  }

  protected void cmdReset_Click(object sender, System.EventArgs e)
  {
    Label1.Text = "(No value.)";
  }

  protected void cmdRemove_Click(object sender, System.EventArgs e)
  {
    Button foundButton = (Button)Page.FindControl("newButton");

    if (foundButton != null)
    {
      foundButton.Parent.Controls.Remove(foundButton);
    }
  }
}








5.11.Controls
5.11.1.Controls.Count
5.11.2.Add a control to a page dynamically
5.11.3.Grab Browser Info
5.11.4.Use the input focus capability of ASP.NET 2.0 and superior