SynapseIndia creating asp controls programatically development

Page 1

Creating ASPX Controls Programatically

1


Objectives

You will be able to  Dynamically add controls to a page.  Dynamically alter properties of controls.  Use the Panel control as a container for other controls.

2


Panel Demo  Example of dynamically creating controls and adding them to a page.  Also using a Panel control as a container for other controls.

 An alternative way to put new HTML onto a page at run time.  Rather than outputting HTML directly, we add control objects to the internal representation of the page in server memory.  They output HTML during the “render” phase of the page life cycle on the server.

3


Adding ASPX Controls Dynamically ď Ž

Think about what would happen if we used Response.Write( ) to add an ASPX control to the page.

ď Ž

To add a dynamically created ASPX control to the page we have to add it to the data structure in server memory that is the internal representation of the page.


Panel Demo

 The Panel control is a container for other controls.  Use it to put a border around a group of related controls.  Can set styling, position, and visibility for the entire group by setting properties of the panel.  Provides a convenient way to add controls to the page dynamically.

5


Panel Demo

 We will create a page with a panel control containing some static text.  Dropdown lists permit the user to  Add 1 – 4 labels to the panel.  Add 1 – 4 textboxes to the panel.

 CheckBox permits user to hide the panel.

6


Panel Demo ď Ž Create a new C# ASP.NET empty web site with the name Panel_Demo.

7


Add Default.aspx


Panel Demo  View the Toolbox.  Expand the Standard section.  Add a Panel to the <div>.  Set its properties as shown on the next slide.

9


The Panel

10


Source View

11


Edit Source

position:static means “no special positioning� Follow the normal rules of HTML

12


Add Text Inside Panel

13


App Running

Try resizing the window.

14


What the Browser Received

15


Effects of Properties

 Experiment with property values:  HorizontalAlign  Wrap  Height  Width  Padding

16


Dynamic Controls  Let’s add some controls that will have the effect of adding other controls to the panel dynamically.  A new DropDown List will add a specified number of labels to the panel.  Options for 0 – 4 labels

 A second new DropDownList will add a specified number of CheckBoxes.  Options for 0 – 4 CheckBoxes

 Also a CheckBox that will hide the panel  And a Button to refresh the panel 17


Dynamic Controls

</asp:Panel> <table> <tr> <td> Number of Labels: </td> <td> <asp:DropDownList ID="ddlLabels" runat="server"> <asp:ListItem Text="0" Value="0" /> <asp:ListItem Text="1" Value="1" /> <asp:ListItem Text="2" Value="2" /> <asp:ListItem Text="3" Value="3" /> <asp:ListItem Text="4" Value="4" /> </asp:DropDownList> </td> </tr> 18


Dynamic Controls <tr> <td> Number of TextBoxes: </td> <td> <asp:DropDownList ID="ddlBoxes" runat="server"> <asp:ListItem Text="0" Value="0" /> <asp:ListItem Text="1" Value="1" /> <asp:ListItem Text="2" Value="2" /> <asp:ListItem Text="3" Value="3" /> <asp:ListItem Text="4" Value="4" /> </asp:DropDownList> </td> </tr>

19


Dynamic Controls <tr> <td colspan=2>   </td> </tr> <tr> <td> <asp:CheckBox id="cbHide" runat="server" text="Hide Panel" /> </td> <td> <asp:Button ID="btnRefreshPanel" runat="server" text="Refresh Panel" /> </td> </tr> </table>

20


Design View

21


Code for Dynamic Update using using using using

System; System.Web; System.Web.UI; System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { pnlDynamic.Visible = !cbHide.Checked; int numLabels = int.Parse(ddlLabels.SelectedItem.Value); for (int i = 1; i <= numLabels; i++) { Label lbl = new Label(); lbl.Text = "Label" + i.ToString(); lbl.ID = "Label" + i.ToString(); pnlDynamic.Controls.Add(lbl); pnlDynamic.Controls.Add(new LiteralControl("<br />")); } }

Try it!

22


Page in Chrome

23


After Clicking “Refresh Panel”

24


Hiding the Panel After clicking “Refresh Panel”

25


Refresh Panel Button

 We didn’t add an event handler for the “Refresh Panel” button.  How did it work?  Why was it needed?

26


Code to Add TextBoxes

ď Ž Add to Page_Load: // Generate TextBox controls int numBoxes = int.Parse(ddlBoxes.SelectedItem.Value); for (int i = 1; i <= numBoxes; i++) { TextBox tb = new TextBox(); tb.Text = "TextBox" + i.ToString(); tb.ID = "TextBox" + i.ToString(); pnlDynamic.Controls.Add(tb); pnlDynamic.Controls.Add(new LiteralControl("<br />")); }

27


After Clicking “Refresh Panel”

28


Automatic Scrollbar

Resize window. Look at the effect of making the window wider and more narrow. 29


Automatic Scrollbar

End of Presentation

30


Summary ď Ž

We can create ASPX controls dynamically using C# code and add them to the page before the page is translated into HTML.

ď Ž

We can dynamically modify controls defined in the .aspx file in the Page_Load event handler.

End of Presentation


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.