1 cs 3870/cs 5870: note 16 web user controls. prog 7 copy prog6 to prog7 modify all files for prog7...
DESCRIPTION
Prog7/Default.aspx Not inside any sub-folders Based on Prog7MasterPage One message (centered on the page) Use the TreeView to navigate to the pages you want to see. 3TRANSCRIPT
![Page 1: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/1.jpg)
1
CS 3870/CS 5870: Note 16
Web User Controls
![Page 2: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/2.jpg)
Prog 7
• Copy Prog6 to Prog7• Modify all files for Prog7• Remove Web.config from sub-folders• Make sure Prog7 is working
• Create Prog7 from scratch
2
![Page 3: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/3.jpg)
Prog7/Default.aspx
• Not inside any sub-folders• Based on Prog7MasterPage• One message (centered on the page)
Use the TreeView to navigate to the pages you want to see.
3
![Page 4: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/4.jpg)
4
Creating ShoppingItem.ascx
• For page Checkout
• Add New Items• Web User Control• File name ShoppingItem.ascx• Place code in separate file
• Different file extension
![Page 5: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/5.jpg)
5
Adding Controls to ShoppingItem.ascx
• Same as adding to Web Forms• Using default setting, not absolute position• Textboxes and label on same line
![Page 6: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/6.jpg)
6
Setting Properties of Controls
• Read Only• Width• Alignment
![Page 7: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/7.jpg)
7
Class Prog7_ShoppingItem
Partial Class Prog7_ShoppingItem Inherits System.Web.UI.UserControl
‘ Private data Private _theID, _theName As String Private _thePrice, _theCost As Double Private _theQuantity As Int32
End Class
![Page 8: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/8.jpg)
8
Public PropertiesPartial Class Prog7_ShoppingItem Inherits System.Web.UI.UserControl
Public Property theID As String Set(value As String) _theID = value End Set Get Return _theID End Get End Property . . .End Class
![Page 9: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/9.jpg)
9
Public PropertiesPartial Class Prog7_ShoppingItem Inherits System.Web.UI.UserControl
Public Property theQuantity As Integer Set(value As String) _theQuantity = value End Set Get Return _theQuantity End Get End Property . . .End Class
![Page 10: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/10.jpg)
10
Page Load Event
Partial Class Prog7_ShoppingItem Inherits System.Web.UI.UserControl . . . Protected Sub Page_Load(. . .) Handles Me.Load lblMsg.Text = “”
txtID.Text = _theID txtName.Text = _theName txtPrice.Text = FormatCurrency(_thePrice) txtQuantity.Text = _theQuantity txtCost.Text = FormatCurrency(_theCost) End SubEnd Class
![Page 11: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/11.jpg)
Adding Web User Controlat Design Time
• Prog7/Default.aspx• Source view (or design view)• Drag and Drop ShoppingItem.ascx to Prog7/Default.aspx
• If error, close and re-open Default.aspx or re-open VS
11
![Page 12: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/12.jpg)
Page Directive Register• Prog7/Default.aspx• Source view
<%@ Register Src="~/Prog7/ShoppingItem.ascx" TagPrefix="uc1" TagName="ShoppingItem" %>
<asp:Content ID="Content1" . . .Runat="Server">
<h2>Use the TreeView to . . . </h2>
<uc1:ShoppingItem runat="server" ID="ShoppingItem" />
</asp:Content>12
![Page 13: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/13.jpg)
Page Default.aspx
Protected Sub Page_Load(. . .) Handles Me.Load
ShoppingItem.theID = "101" ShoppingItem.theQuantity = 20End Sub
13
![Page 14: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/14.jpg)
Adding Web User Controlat Run Time
• Must register the control– Drag and Drop or– Copy and Paste
<%@ Register Src="~/Prog7/ShoppingItem.ascx" TagPrefix="uc1" TagName="ShoppingItem" %>
14
![Page 15: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/15.jpg)
Shopping Bag
• Could still use DataTable
• Try SortedList of ShoppingItem
15
![Page 16: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/16.jpg)
Global.asax
Session("Prog7_Bag") = New SortedList
16
![Page 17: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/17.jpg)
Page Shopping.aspxProtected Sub btnBag_Click(. . .)
Handles btnBag.Click Dim c1 As Prog7_ShoppingItem Dim bag As SortedList = Session("Prog7_Bag")
‘ Specify file path to load the control ‘ c1 = CType(LoadControl("../ShoppingItem.ascx"), ‘ Prog7_ShoppingItem)
c1 = New Prog7_ShoppingItem End Sub
17
![Page 18: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/18.jpg)
Page Shopping.aspx
Protected Sub btnBag_Click(. . .) Handles . . . . . c1 = New Prog7_ShoppingItem
c1.theID = txtID.Text c1.theQuantity = txtQuanity.Text . . .
bag.Remove(c1.theID) bag.Add(c1.theID, c1) . . .End Sub
18
![Page 19: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/19.jpg)
Page Checkout.aspxProtected Sub Page_Load(. . .) Handles Me.Load Dim c1, c2 As Prog7_ShoppingItem Dim bag As SortedList = Session("Prog7_Bag")
‘ Need to find the form to add the control Dim theForm As Control = Master.Master.FindControl("form1")
. . .
theForm.Controls.Add(c1)End Sub
19
![Page 20: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/20.jpg)
Page Checkout.aspxProtected Sub Page_Load(. . .) Handles Me.Load Dim c1, c2 As Prog7_ShoppingItem . . . ‘ New does not work c1 = CType(LoadControl("../ShoppingItem.ascx"), Prog7_ShoppingItem) c2 = bag.GetByIndex(0) c1.theID = c2.theID c1.theQuantity = c2.theQuantity
theForm.Controls.Add(c1)End Sub
20
![Page 21: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/21.jpg)
Page Checkout.aspxProtected Sub Page_Load(. . .) Handles Me.Load Dim c1, c2 As Prog7_ShoppingItem . . . ‘ Must use a loop to add all items in bag For . . . c1 = CType(LoadControl("../ShoppingItem.ascx"), Prog7_ShoppingItem) c2 = bag.GetByIndex(index) c1.theID = c2.theID c1.theQuantity = c2.theQuantity
theForm.Controls.Add(c1) NextEnd Sub
21
![Page 22: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/22.jpg)
Public Event
• Define event
• Raise event
• Handle event
22
![Page 23: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/23.jpg)
23
Partial Class Prog7_ShoppingItem . . .
Public Event ItemChanged(ByVal x As Lab7_ShoppingItem, ByVal valid As Boolean)
. . .
End Class
Define Event
![Page 24: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/24.jpg)
24
Partial Class Prog7_ShoppingItem . . . Protected Sub txtQuantity_TextChanged(…) Handles … If not an integer . . . RaiseEvent ItemChanged(Me, False) ElseIf negative integer . . . RaiseEvent ItemChanged(Me, False) Else . . . RaiseEvent ItemChanged(Me, True) End If End SubEnd Class
Raise Event
![Page 25: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/25.jpg)
Add Event Handler‘ Page CheckoutProtected Sub Page_Load(. . .) Handles Me.Load Dim c1, c2 As Prog7_ShoppingItem . . .
c1 = CType(LoadControl("../ShoppingItem.ascx"), Prog7_ShoppingItem) AddHandler c1.ItemChanged,
AddressOf HandleChangeEvent
theForm.Controls.Add(c1)
End Sub
25
![Page 26: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/26.jpg)
Event HandlerPrivate Sub HandleChangeEvent(ByVal Item . . . ) . . . ‘ Must update Shopping Bag For i = 0 To bag.Count - 1 c2 = bag.GetByIndex(i) If c2.theID = item.theID Then c2.theQuantity = item.theQuantity End If total += c2.theCost Next txtTotal.Text = total . . .End Sub
26
![Page 27: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/27.jpg)
Using Form to Add ItemsProtected Sub Page_Load(. . .) Handles Me.Load Dim c1, c2 As Prog7_ShoppingItem Dim bag As SortedList = Session("Prog7_Bag")
‘ Need to find the form to add the control Dim theForm As Control = Master.Master.FindControl("form1")
. . .
theForm.Controls.Add(c1)End Sub
27
![Page 28: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/28.jpg)
Using Panel to Add ItemsAdd Panel1 to Checkout.aspx
Protected Sub Page_Load(. . .) Handles Me.Load Dim c1, c2 As Prog7_ShoppingItem . . .
c1 = CType(LoadControl("../ShoppingItem.ascx"), Prog7_ShoppingItem) . . . Panel1.Controls.Add(c1) . . .End Sub
28
![Page 29: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/29.jpg)
Page Shopping.aspx
• Focus must be correct at all times
29
![Page 30: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/30.jpg)
Fix all errors from earlier Progs!
30
![Page 31: 1 CS 3870/CS 5870: Note 16 Web User Controls. Prog 7 Copy Prog6 to Prog7 Modify all files for Prog7 Remove Web.config from sub-folders Make sure Prog7](https://reader035.vdocuments.mx/reader035/viewer/2022070605/5a4d1add7f8b9ab059975c49/html5/thumbnails/31.jpg)
31
Test 2
ThursdayNov 5