16 data binding

34
Chương: 16 Data Binding  Lp trình W eb 1 Lp trình Web 

Upload: nguyen-ngoc-lieu

Post on 14-Apr-2018

252 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 1/34

Chương: 16 

Data Binding

 Lập trình Web

1 Lập trình Web 

Page 2: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 2/34

Nội dung 

Introducing Data Binding

Single-Value Data Binding

Repeated-Value Data Binding

Data Source Controls

Lập trình Web  2

Page 3: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 3/34

Introducing Data Binding

The basic principle of data binding is this:

You tell a control where to find your data and how you want

it displayed, and the control handles the rest of the details.

In ASP.NET, there are two type of data binding:

Single-value binding :

You can use single-value data binding to add information anywhere

on an ASP.NET page 

and Repeated-value binding:

 Repeated-value data binding allows you to display an entire table (or 

 just a single field from a table).

Lập trình Web  3

Page 4: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 4/34

How Data Binding Works

To use single-value binding, you must insert a data binding expression into the markup in the .aspx file (not

the code-behind file).

To use repeated-value binding, you must set one or more

 properties of a data control.

Once you specify data binding, you need to activate it bycalling the DataBind() method.

The DataBind() method automatically binds a control and

any child controls that it contains. Lập trình Web  4

Page 5: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 5/34

How Data Binding Works

With repeated-value binding, you can use the DataBind()method of the specific list control you’re using. 

Alternatively, you can bind the whole page at once by calling

the DataBind() method of the current Page object.

Once you call this method, all the data binding expressions in

the page are evaluated and replaced with the specified value.

Typically, you call the DataBind() method in the Page.Load

event handler. If you forget to use it, ASP.NET will ignore

your data binding expressions, and the client will receive a

 page that contains empty values Lập trình Web  5

Page 6: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 6/34

Single-Value Data Binding

Single-value data binding is really just a differentapproach to dynamic text.

To use it, you add special data binding expressions intoyour .aspx files.

These expressions have the following format:

Lập trình Web  6

<%# expression_goes_here %>

Page 7: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 7/34

Binding Expression Example

Where Country is a public or protected variable in your 

 page.

Lập trình Web  7

<%# Country %>

<%# Request.Browser.Browser %>

<%# GetUserName(ID) %>

<%# 1 + (2 * 20) %>

<%# "John " + "Smith" %>

Page 8: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 8/34

Example:

Lập trình Web 8

public partial class SimpleDataBinding : System.Web.UI.Page{

protected int TransactionCount;protected void Page_Load(object sender, EventArgs e)

{// (You could use database code here// to look up a value for TransactionCount.)

TransactionCount = 10;

// Now convert all the data binding expressions on the page.this.DataBind();}

}

Page 9: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 9/34

Lập trình Web 9

Page 10: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 10/34

Lập trình Web 10

Page 11: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 11/34

Simple Data Binding with

Properties

Lập trình Web  11

public partial class DataBindingUrl : System.Web.UI.Page{

public string URL;

protected void Page_Load(Object sender, EventArgs e){

URL = "Images/picture.jpg";this.DataBind();

}}

Page 12: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 12/34

 

Lập trình Web  12

<asp:Label id="lblDynamic" runat="server"> <%# URL %></asp:Label>

<asp:CheckBox id="chkDynamic" Text="<%# URL %>"

runat="server" />

<asp:Hyperlink id="lnkDynamic" Text="Click here!"NavigateUrl="<%# URL %>" runat="server" />

<asp:Image id="imgDynamic" ImageUrl="<%# URL %>"runat="server" />

Page 13: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 13/34

 

Lập trình Web  13

Page 14: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 14/34

Problems with Single-Value Data

Binding

 Putting code into a page’s user interface. 

 Fragmenting code. 

Lập trình Web  14

Page 15: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 15/34

Repeated-Value Data Binding 

Data Binding with Simple List Controls

Strongly Typed CollectionsMultiple Binding

Using the DataValueField Property

Data Binding with ADO.NET 

Lập trình Web 15

Page 16: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 16/34

Repeated-Value Data Binding

Repeated-value data binding works with the ASP.NET listcontrols.

To use repeated-value binding, you link one of these

controls to a data source.

When you call DataBind(), the control automatically

creates a full list using all the corresponding values.

Lập trình Web  16

Page 17: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 17/34

Repeated-Value Data Binding

ASP.NET provides follow list controls: ListBox, DropDownList, CheckBoxList, and 

 RadioButtonList: These web controls provide a list for a

single field of information.

 HtmlSelect: This server-side HTML control represents the

HTML <select> element and works essentially the same

way as the ListBox web control.

GridView,DetailsView, FormView, and ListView: These rich

web controls allow you to provide repeating lists or grids

that can display more than one field of information at a time.

Lập trình Web  17

i i i Si i

Page 18: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 18/34

Data Binding with Simple List

Controls

Lập trình Web  18

Page 19: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 19/34

Data Source Controls

The Page Life Cycle with Data Binding

The SqlDataSourceSelecting Records

Parameterized Commands

Handling Errors

Updating Records 

Lập trình Web 19

Page 20: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 20/34

Data Source Controls

Data source controls allow you to create data-bound pages without writing any data access code at all.

Data source controls can perform two key tasks

They can retrieve data from a data source and supply it to

 bound controls. When you use this feature, your bound

controls are automatically filled with data. You don’t even

need to call DataBind().

They can update the data source when edits take place. In

order to use this feature, you must use one of ASP.NET’s

rich data controls, like the GridView or DetailsView.

Lập trình Web  20

Page 21: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 21/34

Data Source Controls

The data source controls include any control thatimplements the IDataSource interface.

The .NET Framework includes the following data source

controls:

Lập trình Web  21

Page 22: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 22/34

Data Source Controls

SqlDataSource: This data source allows you to connect toany data source that has an ADO.NET data provider (SQL

Server, Oracle, and OLE DB or ODBC data sources).

 AccessDataSource: This data source allows you to read

and write the data in an Access database file (.mdb).

ObjectDataSource: This data source allows you toconnect to a custom data access class. (See more in

Chaper 23).

Lập trình Web  22

Page 23: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 23/34

Data Source Controls

 XmlDataSource: allows you to connect to an XML file.(See more in Chapter 19).

SiteMapDataSource: allows you to connect to a .sitemap

file that describes the navigational structure of your 

website. (See more in Chapter 14).

Lập trình Web  23

Page 24: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 24/34

Notes

If you perform more than one data access task in the same page (for example, if you need to be able to query two

different tables), you’ll need more than one data access

control

Lập trình Web  24

Th P Lif C l ith D t

Page 25: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 25/34

The Page Life Cycle with Data

Binding

1. The page object is created (based on the .aspx file.

2. The page life cycle begins, and the Page.Init and

Page.Load events fire.

3. All other control events fire.

4. If the user is applying a change, the data source controls

 perform their update operations now.

5. The Page.PreRender event fires.

6. The data source controls perform their queries andinsert the data they retrieve into the bound controls.

7. The page is rendered and disposed.

Lập trình Web  25

Page 26: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 26/34

The SqlDataSource

Data source controls turn up in the .aspx markup portionof your web page like ordinary controls.

The SqlDataSource represents a database connection that

uses an ADO.NET provider.

Lập trình Web  26

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ... />

Page 27: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 27/34

The SqlDataSource’s Properties 

ProviderName: uses to choose the type of data source. System.Data.SqlClient (is default value)

System.Data.OracleClient

System.Data.OleDb.

System.Data.OleDb

Lập trình Web  27

<asp:SqlDataSource ProviderName="System.Data.SqlClient" ... />

Page 28: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 28/34

The SqlDataSource’s Properties 

ConnectionString: you can hard-code the connection string directly in the

SqlDataSource tag

Or to refer to a connection string in your .aspx markup, you

use a special syntax in this format:<%$ ConnectionStrings:[ NameOfConnectionString] %> 

Lập trình Web  28

<connectionStrings><add name="Northwind"

connectionString= "Data Source=.\SQLEXPRESS;InitialCatalog=Northwind;Integrated Security=SSPI" />

</connectionStrings>

<asp:SqlDataSource

ConnectionString="<%$ ConnectionStrings:Northwind %>" ... />

Page 29: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 29/34

The SqlDataSource’s Properties 

SelectCommand,InsertCommand, UpdateCommand, andDeleteCommand — each of which takes a string. The

string you supply can be inline SQL or the name of a

stored procedure.

SelectCommandType, InsertCommandType,UpdateCommandType, or DeleteCommandType: indicate

types of the commands. It can be StoredProcedure or Text 

(default is Text).

Lập trình Web  29

Page 30: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 30/34

Selecting Records

Here’s a complete SqlDataSource that defines a Selectcommand for retrieving product information from the

Products table:

Use Datasource

Lập trình Web  30

<asp:SqlDataSource ID="sourceProducts" runat="server"

ProviderName="System.Data.SqlClient“ConnectionString="<%$ ConnectionStrings:Northwind %>“ SelectCommand="SELECT ProductName, ProductID FROM

Products"/>

<asp:DropDownList ID="lstProduct" runat="server" AutoPostBack="True"DataSourceID="sourceProducts" DataTextField="ProductName"

DataValueField="ProductID" />

How the Data Source Controls

Page 31: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 31/34

How the Data Source Controls

Work 

The DataSourceMode: The DataSet mode supports advanced sorting, filtering, and

caching settings that depend on the DataSet.

All these features are disabled in DataReader mode.

However, you can use the DataReader mode with extremelylarge grids, because it’s more memory-efficient.

When you bind more than one control to the same data

source, you cause the query to be executed multiple times

The SqlDataSource supports automatic caching if you set

EnableCaching to true Lập trình Web  31

Page 32: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 32/34

Parameterized Commands

Types of Parameters

Setting Parameter Values in Code

Lập trình Web  32

Page 33: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 33/34

Handling Errors

Lập trình Web  33

protected void sourceProducts_Selected(object sender,SqlDataSourceStatusEventArgs e){

if (e.Exception != null){lblError.Text = "An exception occurred performing the

query.";// Consider the error handled.

e.ExceptionHandled = true;}

}

Page 34: 16 Data Binding

7/27/2019 16 Data Binding

http://slidepdf.com/reader/full/16-data-binding 34/34

Updating Records

Lập trình Web 34