Monday, 18 March 2013

Controls: Add programmatically to an ASP.NET Web page


In order to programmatically add a control to a page, there must be a container for the new control. For example, if you are creating table rows, the container is the table. If there is no obvious control to act as container, you can use a PlaceHolder or Panel Web server control.
To add a control to an ASP.NET Web page programmatically
  1. Create an instance of the control and set its properties, as shown in the following example:
    Label myLabel = new Label();
    myLabel.Text = "Sample Label";
    
    
    
  2. Add the new control to the Controls collection of a container already on the page, as shown in the following example:
    Panel Panel1= new Panel();
    Panel1.Controls.Add(myLabel);
    
    
    
    The following code example shows the event handler for the SelectedIndexChanged event of a control named DropDownList1. The handler creates as many label controls as the user has selected from the drop-down list. The container for the controls is a PlaceHolder Web server control named Placeholder1.
    Security noteSecurity Note
    User input in a Web page can include potentially malicious client script. By default, ASP.NET Web pages validate that user input does not include script or HTML elements. For more information, Script Exploits Overview.
    private void DropDownList1_SelectedIndexChanged(object sender, System.EventArgs e)
    {
        DropDownList DropDownList1 = new DropDownList();
        PlaceHolder PlaceHolder1 = new PlaceHolder();
    
      // Get the number of labels to create.
     int numlabels = System.Convert.ToInt32(DropDownList1.SelectedItem.Text);
     for (int i=1; i<=numlabels; i++)
     {
       Label myLabel = new Label();
    
       // Set the label's Text and ID properties.
       myLabel.Text = "Label" + i.ToString();
       myLabel.ID = "Label" + i.ToString();
       PlaceHolder1.Controls.Add(myLabel);
       // Add a spacer in the form of an HTML <br /> element.
       PlaceHolder1.Controls.Add(new LiteralControl("<br />"));
     } 
    }
    
    

No comments:

Post a Comment