Presentation is loading. Please wait.

Presentation is loading. Please wait.

1111 Creating ASPX Controls Programatically. 2222 Objectives You will be able to Dynamically add controls to a page. Dynamically alter properties of controls.

Similar presentations


Presentation on theme: "1111 Creating ASPX Controls Programatically. 2222 Objectives You will be able to Dynamically add controls to a page. Dynamically alter properties of controls."— Presentation transcript:

1 1111 Creating ASPX Controls Programatically

2 2222 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.

3 3 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.

4 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. 4

5 5 Panel Demo The Panel control is a container for other controls. Use it to put a border around a group of related controls. We 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.

6 6 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.

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

8 8 Panel Demo

9 Add New Item 9

10 Add Web Form Default.aspx 10

11 11 Add a Panel View the Toolbox. Expand the Standard section. Add a Panel to the. Use handles on the panel in design view to resize it. Set its properties in the Properties window on the right side of the design surface. As shown in a later slide

12 Adding a Panel 12 Double click on"Panel" in the Toolbox to add a panel at the cursor position.

13 New Panel in Source View 13

14 14 New Panel in Design View Use handles on the panel to resize it.

15 15 Source View

16 16 Edit Source position:static means “no special positioning” Follow the normal rules of HTML

17 Add Text Inside Panel <asp:Panel ID="pnlDynamic" runat="server" BackColor="Beige" BorderStyle="Solid" Font-Names="Courier New" Height="287px" Width="80%" ScrollBars="Auto" Style="position:static; padding: 20px"> This is static content in the panel. This text is here to show the effect of changing the padding values. Padding value can be specified in terms of pixels (px), centimeters (cm), or percentage of the panel's width (%). 17

18 18 Text Inside Panel

19 19 App Running Try resizing the window.

20 20 What the Browser Received... became...

21 21 Effects of Properties Experiment with property values: HorizontalAlign Wrap Height Width Padding

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

23 23 Dynamic Controls Number of Labels:

24 24 Dynamic Controls Number of TextBoxes:

25 25 Dynamic Controls <asp:CheckBox id="cbHide" runat="server" text="Hide Panel" /> <asp:Button ID="btnRefreshPanel" runat="server" text="Refresh Panel" />

26 26 Design View

27 27 Code for Dynamic Update using System; using System.Web; using System.Web.UI; using 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(" ")); } Try it!

28 28 Page in Chrome Select Number of Labels and then click "Refresh Panel".

29 29 After Clicking “Refresh Panel” Dynamically added labels. Click Hide Panel checkbox and then "Refresh Panel".

30 30 Hiding the Panel After clicking “Refresh Panel” Click Hide Panel checkbox again and then "Refresh Panel" to bring the panel back.

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

32 32 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(" ")); }

33 33 After Clicking “Refresh Panel”

34 34 Automatic Scrollbar Resize window. Look at the effect of making the window wider and more narrow.

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


Download ppt "1111 Creating ASPX Controls Programatically. 2222 Objectives You will be able to Dynamically add controls to a page. Dynamically alter properties of controls."

Similar presentations


Ads by Google