1 CS 3870/CS 5870: Note07 Prog 4
Master Pages Creating a master page based on another master page MainMasterPage –For all Progs and Tests Prog4MasterPage –For Prog 4 only 2
Main Master Page Head –Title: UWP – CS 3870/CS 5870 –ContentPlaceHolder with ID “head” –Link to CSS file Body –Form –Div –H1: Web Protocols... –H2: Names –ContentPlaceHolder with “ContentPlaceHolder1” 3
Prog4MasterPage No head or body or form –All are in MainMasterPage Content for “head” –What can be added here? –CSS file link Content for “ContentPlaceHolder1” –All controls should be within this Content –TreeView (not completed) –Add a new ContentPlaceHolder using ToolBox 4
Content Pages Add New Items –Web Form –Select Master Page –Place code in separate file –Default.aspx Add Web Form (with master) –Updating.aspx –Shopping.aspx 5
Content Pages Content for ContentPlaceHolder1 –All controls should be within this content control Cannot access ContentPlaceHolders in MainMasterPage directly 6
Prog4MasterPage Complete TreeView on Prog4MasterPage –Source view –Design view 7
8 TreeView Controls Navigation Tab Property Nodes (Collection) –Root Nodes –Child Nodes –Node Properties Text NagivateUrl
9 Accessing Database Data Source Controls –SqlDataSource –AccessDataSource –... Code class –Connection –Command –DataAdpater –AdapterBuilder Prog 3: Use Code class Prog 4: Use Data Source Controls
SqlDataSource Data Tab on ToolBox Smart Tag –Configure Data Source New Connection –Server Name: Xray\Sqlexpress –User SQL Server Authentication –User name: jim –Password: UWPCS3870 (case sensitive) –Select or enter a database name: UWPCS3870 (case sensitive) –OK Next 10
SqlDataSource Yes, save this connection as Specify columns from a table or view –Product –Where –Order By… –Advanced Generate Insert, Update and Delete statements: Check Use optimistic concurrency: Check Test Query Finish 11
Data Bound Controls Data Tag GridView FormView DetailsView DataList ListView... 12
Page Default Must use GridView Choose Data Source Must Format Fields 13
Format GridView AutoFormat –Your choice Edit Columns Select fields –Data Field –Header Text –ItemStyle Edit Templates 14
TemplateField Edit Columns UnitPrice Convert this field into a TemplateField OK Edit Templates –Select [Label] –Smart Tag –Edit Databindings –May need to Refresh Schema –Bound to: UnitPrice –Format: Currency – {0;C} Smart Tag End Template Editing 15
GridView Enable Paging: Yes Enable Sorting: Yes Enable Editing: No Enable Deleting: No Enable Selecting: No 16
Paging GridView Property Window Page size: 5 Page Settings –Mode: NextPreviousFirstLast –Text: Next, Previous, First, Last 17
Page Updating Any Data Bound Control One record at a time Navigate to all records Sorted by ProductID Update Delete New Message textbox 18
Paging DetailsView Property Window Page Settings –Mode: NextPreviousFirstLast –Text: Next, Previous, First, Last 19
Auto Format DetailsView 20
Catching Database Errors Protected Sub DetailsView1_ItemDeleted( sender As Object, e As DetailsViewDeletedEventArgs) Handles DetailsView1.ItemDeleted If Not e.Exception Is Nothing Then e.ExceptionHandled = True txtMessage.Text = e.Exception.Message End If End Sub Not DetailsView1.ItemDeleting! 21
Page Shopping Page must be the same as Prog3 –Textboxes for the fields –TextChange events SqlDataSource Binding textboxes to SqlDataSource? 22
Query with Parameters SqlDataSource Where –Column: ProductID –Operator: = –Source: None –Add [ProductID] Test Query 23
Execute Query ‘ Get the ID id = txtID.Text.Trim ‘ Set query parameter SqlDataSource1.SelectParameters("ProductID").DefaultVa lue = id ‘ Get the query result, which is a DataView Dim dv As System.Data.DataView = CType(SqlDataSource1.Select( DataSourceSelectArguments.Empty), System.Data.DataView) 24
Execute Query ‘ Get the ID ‘ Set query parameter ‘ Get the query result, which is a DataView If dv.Count = 1 Then ‘ Valid ID price = dv.Item(0)(2)... Else ‘ Invalid ID End If 25
Prog 4 Bonus Points Use one SqlDataSource for all pages. 26
Test 1 Thursday, October 9 27