Presentation is loading. Please wait.

Presentation is loading. Please wait.

Unit 8.2 How data can be used Accessing Data in Views

Similar presentations


Presentation on theme: "Unit 8.2 How data can be used Accessing Data in Views"— Presentation transcript:

1 Unit 8.2 How data can be used Accessing Data in Views
Learning Objectives How data can be used The Money Ball Example Accessing Data in Views Accessing data in Graphical Web Controls Working with Templated Data Working with Hidden Cells Group Exercise

2

3 How Data can be used Example: Moneyball Batting average Stolen bases
Runs batted in On-base % Slugging % On-base + Slugging (OPS) How Data can be used

4

5 Databases Database creation and use Database and Query Development
MS Visual Web Developer Database and Query Development MS SQL Server Business Intelligence Microsoft BI, IBM Cognos Real world Application Money Ball

6 Collections of Rows GridViews and DetailsViews contain a “collection” of Rows Each Row contains a collection of Cells Cells Data bound controls are complex structures that contain/hold other controls, controls that are not visible from page level code Before we can extract data from these internal controls we must locate them inside the control that is visible from the page Rows gvFees dvFee

7 Locations of Cells DetailsView dvFee
DetailsView dvFee The Fee amount (i.e ) dvFee.Rows[2].Cells[1] GridView: gvFees ( “Select” is Column 0) The FID of (i.e. 1) is in gvFees.Rows[0].Cells[1] The Weight Fee (i.e. 12.5) is in gvFees.Rows[2].Cells[3] 1 2 1 2

8 Types of Cells: Standard and Templated
Standard cells Templates Come from Database Yes, always sometimes Created manually Never Always in ItemTemplates Data type String web control (e.g. DDL) Used for Display, edit Insert, display, edit, validation Accessed by Cell Location Cell Location + FindControl

9 Accessing Data in Standard Cells
If The cell does NOT contain a CheckBox, AND It has NOT been converted to a Template Then Your data is in the Text property of the Cell Example: Otherwise Use the FindControl utility Label lblFees = new Label(); lblFee.Text = gvFees.Rows[3].Cells[2].Text; Label lblFees = gvFee.Rows[3].Cells[2].FindControl(“lblFee”) as Label;

10 Basic Templates Guidelines
To create/use templates, remember three things Web control type (e.g. Label) Its name (e.g. “lblFeeDescription”), Its location (e.g. in ItemTemplates ). Why use to Templates To add validators To insert new values into the database To access the contents of a control in a template you first have to find it All .NET controls that can hold other controls have a method called FindControl that allows you to locate the inner control If FindControl locates the control it provides a link (sometimes called a pointer) to the control which we can capture in a variable If you are looking in the wrong place, or misspell the control’s name FindControl won’t find it and will return a null value. You should ALWAYS test for this.

11 Template Example: DetailsView
To use templated data, convert them directly into labels. Label lblDesc = dvFee.Rows[1].Cells[1].FindControl(lblDescription”) as Label

12 Hiding data in DetailViews

13 The Data is NOT where you think it is
1 2 dvFee.Rows[2].Cells[1] 1 2 Invisible field is still here What is the location of the fee?

14 How to tell Examine at the “SelectedFields” window
Fee Description is still the second field (it is row 1) And the Fee is still the third field (row 2) 1 2

15 Finding Data in GridViews
All Data is located in the row selected by the user The SelectedIndex is used to index the row and is -1 if no row is selected The basic idea is similar, except all the data for one record is in the same row and you have to know which row to use If you only want data from the selected row, you can use the GridView’s SelectedIndex property – it tells you the number of the selected row (see next slide)

16 All rows of a GridView Use a special loop called “foreach”
Loops through a collection of rows One row at a time The type of object being extracted from the collection The collection being looped through

17 Unit 8 L2 For this exercise we are going to modify your Unit 5 L2 assignment, replacing the fees ListBox with a fees GridView Start by Opening your ASPPub and copying your yournameU5L2.aspx files into the Unit8 folder. Rename the files to yournameU8L2 Change the page heading from UNIT 5 L2… to UNIT 8 L2 WORKING GRIDVIEW

18 Unit 8 L2 - 2 Delete the fees ListBox and put a GridView in its place. Give the GridView the (ID) of gvFees Click on the GridView’s SmartMenu, click the dropdown next to Choose Data Source and select <New data source> Select SQL Database and change its ID to sdsFees Click OK and select the connection you created in U8L1

19 Unit 8 L2 - 3 Click Next, select the Fees table and select all the fields individually Click Next and click Text Query to see the records in the table, then click Finish Apply an Auto Format to the Gridview and change its width to 300px. Select Edit Columns from the GridViews SmartMenu Select TemplateField from Available Fields and press Add

20 Unit 8 L2 – 4 Click the Up Arrow key to move the TemplateField to the top of the Selected fields list Select FID from Selected fields and change its Visible property to false Select the FeeDescription field change its HeaderText property to Description Change its Styles, HeaderStyle, HorizontalAlign to Left Select the Fee field and change its DataFormatString to {0:f2}

21 Unit 8 L2 - 5 Click OK and then EditTemplates, you should be looking at your new ItemTemplate Add a CheckBox to the ItemTemplate Change its (ID) to ckbSelect Change its Text to Select End Template Editing You should have something that looks something like this

22 Unit 8 L2 - 6 Delete the WHILE loop button and all its associate code (the easiest way to do this may be do double-click the button to get to the code, select all the click method code and delete it, switch back to design view and delete the button) Delete the FOR loop button and all its associate code Double-click the sales tax button and locate and delete the code used in Unit 5 to process the ListBox (leave the lines that calculate the tax and those that write to the Label)

23 Unit 8 L2 - 7 In place of the ListBox code write a foreach loop to process the GridView rows: Code: Find the CheckBox. Remember the data type & cast it (below) Code: Is it Checked? Code: Locate the Fee (remember, the invisible FID field still takes up a Cell!) Code: add it to decFees Wrap up Sales tax and Switch statement is not critical for this Other than that, please make it look like the sample page … Try A sales with no fees Try A sales with one or more fees foreach (GridViewRow gvRow in gvFees.Rows) { }

24 Unit 8 L2 - 8 Once you are sure that your calculations work
Add code to reset the checkboxes This should be a foreach loop that Locates the CheckBox in the GrideViewRow and Sets its Checked property to false Test the page with the same data as before to be sure you get the same answers and that the checkboxes are reset Once you are sure the page works, link it to your MIS3200 profile page and save your complete ASPPub to ASPNET as you have done before Post a link to your MIS3200 portfolio page in the dropbox

25 Think About It! A DetailsView and a GridView always look like tables. Think of some applications where you might want to display data in a different way. A FormView shows one record at a time, like the DetailsView, but it isn’t divided into Rows and Cells. How do you think you would access data in a FormView.


Download ppt "Unit 8.2 How data can be used Accessing Data in Views"

Similar presentations


Ads by Google