công ngh ệ .net .net technology l ng tr n hy...

69
Công ngh.NET .NET Technology Lương Trn Hy Hiến Bmôn Hthng Thông tin Khoa Công NghThông Tin Trường ĐHSP TP. HChí Minh

Upload: others

Post on 01-Feb-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ .NET.NET Technology

Lương Tr ần Hy Hi ếnBộ môn Hệ thống Thông tinKhoa Công Nghệ Thông Tin

Trường ĐHSP TP. Hồ Chí Minh

Page 2: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Chương 4: Gắn kết dữ liệu

Data Binding

Page 3: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 3 HIENLTH

Nội dung chính

� ADO.NET� DataBinding� DataBound Control

Page 4: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 4 HIENLTH

Ôn tập ADO.NET

Page 5: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 5 HIENLTH

CẤU TRÚC CỦA ADO.NET

� NET Data Provider - một tập hợp các thành phần bao gồm các đối tượng:o Connection: cung cấp việc kết nối đến CSDL o Command : Thi hành các câu lệnh SQL, cập nhật dữ liệu

thông qua đối tượng Adaptero DataReader cung cấp một luồng truy xuất DL o DataAdapter cung cấp cầu nối giữa đối tượng Dataset và

CSDL. DataAdapter sử dụng đối tượng Command để thực thi các câu lệnh SQL

Page 6: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 6 HIENLTH

Đối tượng DataSet

� DataSet bao gồm tập các đối tượng DataTable,mỗi DataTable điển hình tương đương với một table hoặc là một view mà ta có thể thiết lập mối quan hệ giữa chúng thông qua đối tượng DataRelation.

� Dữ liệu trong DataSet có thể nhất quán bằng cách sử dụng đối tượng UniqueConstraint và ForeignKeyConstraint

Page 7: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 7 HIENLTH

Mô hình đối tượng DataSet

Page 8: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 8 HIENLTH

Đối tượng DataSet

� Tạo Dataset:DataSet ds = new DataSet();

� Thuộc tínho Tables: trả về danh sách các bảng trong DataSeto Count: Trả về số DataTable trong DataSet

� Ví dụ:DataSet ds = new DataSet();

ObjDataTable = ds.Tables;

foreach(DataTable obj in ds.Tables)

{

//xử lý datatable obj;

}

Page 9: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 9 HIENLTH

Đối tượng DataTable

� DataTable được dùng để trình bày các bảng trong DataSet.

� Lớp DataTable được định nghĩa trong namespace System.Data

� DataTable gồmoDataColumnCollectionoDataRowCollection

Page 10: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 10 HIENLTH

Đối tượng DataTable

� Khởi tạo:

DataTable dt = new DataTable();

hay:DataTable dt = new DataTable(“Tên_DataTable”);

Page 11: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 11 HIENLTH

Đối tượng DataTable

� DataColumn: Trình bày lược đồ của một cột trong một DataTable. Mỗi DataColumn có một thuộc tính DataType để xác định kiểu dữ liệu được lưu trữ trong DataColumn

� Khởi tạo DataCoumn dc = new DataColumn();

� DataRow: trình bày một dòng dữ liệu trong DataTable

� Khởi tạo:DataRow r = new DataRow();

Page 12: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 12 HIENLTH

Đối tượng DataTable

� Các thuộc tính - phương thức của DataTableo Columns: trả về các cột trong Datatableo Columns.Count: trả về số cột trong bảngo Columns.Add(DataColumn): Thêm cột vào bảngo Rows: trả về các dòng, mỗi dòng là một đối tượng

datarowo Rows.Count: trả về số dòng trong bảngo Rows.Add(DataRow): thêm một dòng vào bảng

Page 13: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 13 HIENLTH

Đối tượng DataTable

� Ví dụ:DataTable dt= new DataTable(“Table”);

DataColumn c1= new DataColumn(“F1”);

DataColumn c2= new DataColumn(“F2”);

dt.Columns.Add(“c1”);

dt.Columns.Add(“c2”);

DataRow dr;

for(i=1; i<=n; i++)

{

dr=new DataRow();

dr[0]=i; dr[1]=i; dt.Rows.Add(dr);

}

Page 14: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 14 HIENLTH

DataView-DataRowView

� DataRowView: là một dòng dữ liệu trong dataView

� DataView: là đối tượng dùng để lưu trữ dữ liệu, có cấu trúc dạng bảng, cho phép sắp xếp, tìm kiếm dữ liệu.

� Dataview được tạo từ một hoặc nhiều dataRowView

Page 15: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 15 HIENLTH

DataView-DataRowView

� Khai báo:DataView dv = new DataView();

� Thuộc tính:o Sort: Sắp xếp dữ liệu

� Ví dụ: dv.Sort =“F1 F5 desc, F2 asc”;

Page 16: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 16 HIENLTH

DataView-DataRowView

� FilterRow: lọc dữ liệu theo một điều kiện cho trước

dv.FilterRow = “Expression”

� Ví dụ:dv.FilterRow =“F1>10”;

Page 17: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 17 HIENLTH

DataView-DataRowView

� FindRow(Value): trả về một mảng DataRowView thỏa điều kiện thiết lập trong thuộc tính sort

� Ví dụ: Lọc ra các dòng thỏa điều kiện F2=”A” trong bảng dưới đây:

DataView dv = new DataView();

dv.Sort= “F2”;

DataRowView[] drv;

drv=dv.FindRow(“A”);

F1 F2 F3

12 A B

5 C E

8 D F

Page 18: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 18 HIENLTH

Các bước kết nối CSDL

� Bước 1: Tạo kết nối� Bước 2: Tạo điều khiển truy vấn SQL� Bước 3: Mở kết nối dữ liệu� Bước 4: Thực thi truy vấn SQL� Bước 5: Đóng kết nối� Bước 6: In kết quả

Page 19: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 19 HIENLTH

Lưu ý:

� Hoặc tạo chuỗi kết nối duy nh ất lưu trong Web.configo Bổ sung vào tag <configuration> một tag

<connectionStrings> như sau:<connectionStrings>

<name="eStore " connectionString="Server=.; Database=eStore20; Integrated Security=True;“ /></connectionStrings>

� Lấy chuỗi kết nối này:o string connectionString =

WebConfigurationManager.ConnectionStrings["eStore "].ConnectionString;

Page 20: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 20 HIENLTH

Trình bày d ữ liệuTrình bày dữ liệu dạng lưới, có phân trang

Trình bày dữ liệu dạng bảng, có phân trang

Trình bày dữ liệu dạng Chương, mục

Phần tiếp theo sẽ làm rõ

Page 21: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 21 HIENLTH

Page 22: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 22 HIENLTH

Page 23: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 23 HIENLTH

Page 24: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 24 HIENLTH

Đối tượng Parameters

� Chức năng :Truyền tham số cho câu lệnh Sql khi sử dụng đối tượng command để thao tác dữliệu.

� Khai báo đối tượng Parameters:o Sử dụng cơ sở dữ liệu Sql

SqlParameter sqlPar;sqlPar =new SqlParameter("@parVar", SqlDbType);

Page 25: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 25 HIENLTH

Đối tượng Parameters

� Ví dụ:string sql1 = “INSERT INTO SinhVien(MaSV,

HoTen,DTB) VALUES (@x,@y,@z)";

SqlParameter px, py, pz;

px = new

SqlParameter("@x",SqlDbType.VarChar);

py = new

SqlParameter("@y",SqlDbType.NVarChar);

pz = new SqlParameter("@z", SqlDbType.float);

Page 26: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 26 HIENLTH

Đối tượng Parameters

� Add tham số vào đối tượng command:o Thứ tự add tham số vào đối tượng command phải đúng

với thứ tự các tham số trong câu lệnh sql.o Cú pháp:

CmdObject.Parameters.Add(parVar);

� Ví dụ:px.Value = txtMa.Text;

cmd.Parameters.Add(px);

py.Value = txtHoTen.Text;

cmd.Parameters.Add(py);

pz.Value = txtDTB.Text;

cmd.Parameters.Add(pz);

Page 27: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 27 HIENLTH

Đối tượng Parameters

� Thuộc tính của Parametero ParameterName: tên tham sốo SqlDbType: kiểu dữ liệu của tham sốo Size: kích thước của giá trị tham sốoDirection: Input, output or Botho SourceColumn: ánh xạ một cột từ DataTabe

vào Parametero Value: gán giá trị cho tham số, giá trị này

chuyển cho tham số trong khi thực thi lệnh

Page 28: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 28 HIENLTH

DataBindingGắn kết dữ liệu

Page 29: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 29 HIENLTH

GIỚI THIỆU

� Kết gán dữ liệu (Data Binding) cho phép tạora mối liên hệ giữa một control (ví dụ một listboxhoặc một GridView) với dữ liệu nguồn

� Có 2 trường hợp kết gán:o Dùng DataSource Control (DataSourceID )o Viết code lấy DataSource (DataSource )

� Cần có sự tham gia của 2 thành phần:o Nguồn dữ liệuo Control thể hiện dữ liệu

Page 30: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 30 HIENLTH

DataBinding

� Các đối tượng cung cấp dữ liệu để hiển thị:o Biến đơn (int, string, HocSinh,....)o Hàm/Propertyo Biến dãy (Array, List, Hashtable, DataTable, ..)o Dùng List Control o Dùng Data source control được sử dụng:

• SqlDataSource• AccessDataSource • XmlDataSource• ObjectDataSource• SiteMapDataSource• ....

Page 31: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 31 HIENLTH

DataBinding

� Dùng phương thức DataBind() để gắn kết dữ liệuo Có thể gọi Page.DataBind() để yêu cầu tất cả

các control trên trang thực hiện gắn kết dữ liệu.

Page 32: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 32 HIENLTH

Cú pháp

� Thuộc tính = “<%# nguồn-dữ-liệu%>”

Page 33: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 33 HIENLTH

DataBinding

� Có thể bind một expression vào control

� Bind dữ liệu dạng dãy vào control thể hiện dãy

Page 34: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 34 HIENLTH

DataBound ControlCác đối tượng gắn kết dữ liệu

Page 35: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 35 HIENLTH

List-Bound control

� Kết nối đến nguồn dữ liệu và hiển thị dữ liệu

� Các List – bound control gồm:

� DropDownList

� ListBox

� CheckBoxList

� RadioButtonList

� GridView

� DataList

� Repeater

Page 36: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 36 HIENLTH

� Thiết lập các thuộc tính

Thuộc tính Mô tả

DataSource � DataSet chứa dữ liệu

DataMember � Bảng dữ liệu trong DataSet

DataTextField � Field trong DataTable được hiển thị

DataValueField � Field trong DataTable trở thành giá trị của item

Gán dữ liệu từ Dataset

Page 37: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 37 HIENLTH

Gán dữ liệu từ Dataset

� Điền dữ liệu vào DataSet, gọi phương thức DataBind()

= ds.Tables[0]; adap.Fill(ds);listBound.DataSource = ds.Tables[0]; listBound.DataBind();

Page 38: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 38 HIENLTH

Gán dữ liệu từ DataReader

� Thiết lập thuộc tính

Thuộc tính Mô tả

DataSource � Nguồn dữ liệu

DataTextField � Field trong DataTable được hiển thị

DataValueField � Field trong DataTable trở thành giá trị của item

Page 39: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 39 HIENLTH

Gán dữ liệu từ DataReader

� Gọi phương thức DataBind

listbound.DataSource = dr;listbound.DataBind();

Page 40: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 40 HIENLTH

Gán dữ liệu từ DataReader

� Đọc từng record

while (dr.Read())

{

string value = dr[Index]ToString();hoặc string value = dr["FieldName"].ToString();

listBound.Items.Add(new ListItem(value));

}

Page 41: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 41 HIENLTH

DropDownList

� Cú pháp:

� Các thu ộc tính:o Id.Item.Count: số phần tử trong danh sácho AutoPostBack =true : phần tử được chọn sẽ postback về

servero SeletedItem: trả về phần tử được chọno SeletedText: trả về nội dung phần tử được chọno SeletedValue: trả về giá trị (key) phần tử được chọn

<asp : DropDownList ID ="Drp" runat ="server“></ asp : DropDownList >

Page 42: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 42 HIENLTH

DropDownList

� Sự kiện:

oOnSelectedIndexChangeoTextChange

Page 43: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 43 HIENLTH

Ví dụprotected void Page_Load(object sender, EventArgs e)

{

string strcn = "server=.; database=SongAlbum; uid=sa; pwd=";

SqlConnection con = new SqlConnection(strcn);

con.Open();

string sql = "select * from Artist";

SqlCommand cmd = new SqlCommand(sql, con);

SqlDataReader dr = cmd.ExecuteReader();

while (dr.Read())

{

string text = dr[0].ToString();

string value = dr[1].ToString();

ddlDSCaSy.Items.Add(new ListItem(text,value));

}

}

Page 44: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 44 HIENLTH

ListBox

� Cú pháp:

� Các thu ộc tính:o Rows: trả về số dòng hiển thị trong

listbox o SelectedIndex: chỉ số index của

phần tử được chọn trong listbox

<asp : ListBox ID ="ListBox1" runat ="server"></ asp : ListBox ></ div >

Page 45: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 45 HIENLTH

ListBox

o SelectedItem: phần tử được chọno SelectionMode: chế độ cho phép chọn nhiều phần tử cùng

một lúco Items: tập các phần tử trong listbox

� Sự kiện:o SelectedIndexChanged : sự kiện xãy ra khi thuộc tính

SelectedIndex được thay đổi

Page 46: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 46 HIENLTH

CheckBoxList

� Cú pháp:

� Thuộc tính:o AutoPostBack: nếu có giá trị true

thì phần tử được chọn sẽ postbackvề server

o Items : tập các phần tử trong checkboxlist

<asp:CheckBoxList ID="CkBLst" runat="server">

</asp:CheckBoxList>

Page 47: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 47 HIENLTH

CheckBoxList

� Items.Count: số phần tử trong checkboxlist� RepeatColumns: số cột lặp� RepeatDirection="Horizontal/Vertical”� RepeatLayout="Table/Flow”

Page 48: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 48 HIENLTH

RadioButtonList

� Cú pháp:

� Các thuộc tính:o AutoPostBacko SelectedIndexo SelectedItemo RepeatLayouto RepeatDirection

<asp:RadioButtonList ID="RadioButtonList1" runat="server">

</asp:RadioButtonList>

Page 49: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 49 HIENLTH

Ví dụ:

<asp:RadioButtonList id="RdLst“ RepeatColumns="2"

RepeatDirection="Vertical“ runat="server">

</asp:RadioButtonList>protected void Page_Load(object sender, EventArgs e)

{

if (!Page.IsPostBack)

{

ArrayList arrlst = new ArrayList();

arrlst.Add("Item1"); arrlst.Add("Item2"); arrlst.Add("Item3"); arrlst.Add("Item4");

rdlst.DataSource = arrlst;

DataBind();

}}

Page 50: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 50 HIENLTH

DataList

� Sử dụng DataList hiển thị dữ liệu từ data sourceo Sử dụng khi hiển thị dữ liệu dạng danh sách (tương

tự dạng Table)o Đơn giản hơn GridViewo Ít nhất có ItemTemplateo Mỗi template có kiểu dáng riêng (HeaderStyle và

ItemStyle)

Page 51: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 51 HIENLTH

DataList

� Sử dụng tùy chỉnh EditTemplate

Page 52: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 52 HIENLTH

DataList

� Các bước sử dụng DataList:o Chuẩn bị nguồn dữ liệuo Gán DataSource cho DataListo Cấu hình ItemTemplate

Page 53: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 53 HIENLTH

Cấu hình ItemTemplate

� Tuân thủ cú pháp dataBinding:Thuộc tính = ‘<%# Eval(“field/property”)%>’

� Có thể thực hiện bằng phương pháp Design

Page 54: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 54 HIENLTH

GridView

� Hiển thị danh sách dạng table� Cho phép phân trang� Thực hiện các chức năng Insert, Update và

Delete dữ liệu trực tiếp.� Chỉ hiển thị những cột cần hiển thị:

o AutoGenerateCoumns = falseo Add các cột vào Bound Field vào GridView

o PageSize : số record trên mỗi trango Xác định cột dữ liệu cần bind: DataFieldo Xác định kiểu dữ liệu phức tạp: TemplateField

Page 55: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 55 HIENLTH

GridView

� Gán dữ liệu dùng Evalo Cú pháp:

<%#Eval("FieldName") %>

Page 56: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 56 HIENLTH

GridView

� Sự kiện:

<asp:GridView ID = "gd1" runat="server" AllowPaging="True"

OnPageIndexChanged="Sangtrang"

PageSize="3"

OnCancelCommand="CancelRecord"

OnDeleteCommand="DeleteRecord"

OnEditCommand="EditRecord"

OnItemCommand="Chon"

OnUpdateCommand="UpdateRecord”

</asp:GridView>

Page 57: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 57 HIENLTH

GridView

� Tùy chỉnh giao diện (style)o AlternatingItemStyleo FooterStyle/HeaderStyle

o…

Page 58: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 58 HIENLTH

GridView

�<asp:BoundField />�<asp:CheckBoxField />�<asp:HyperLinkField />�<asp:ImageField />�<asp:CommandField />�<asp:TemplateField>�<asp:DynamicField />

Page 59: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 59 HIENLTH

GridView

� TemplateField : Cho phép xuất dữ liệu theo ý muốn, không phải theo dạng bảng.o Cú pháp :

<Columns >

<asp:TemplateField >

</asp:TemplateField >

</Columns >

Page 60: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 60 HIENLTH

GridView

<asp:GridView ID = "gd2" runat = "server"><Columns>

<asp:TemplateField><HeaderTemplate>

//đặt phần dữ liệu là tiêu đề không lặp</HeaderTemplate><ItemTemplate>

// đặt phần dữ liệu hiển thị lặp đi lặp lại //(các record)

</ItemTemplate></asp: TemplateField>

</Columns></asp:GridView>

Page 61: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 61 HIENLTH

Ví dụ

Hiển thị dữ liệu có dạng như hình ta sử dụng <asp:TemplateField>

Page 62: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 62 HIENLTH

GridView

� Edit dữ liệu trên lưới (không khóa ngoại)o Update/Edit

� Sử dụng Edit/Delete Command Fieldo Update: RowEditing, RowCancellingEdit,

RowUpdatingo Delete: RowDeleting

Page 63: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 63 HIENLTH

GridView

� Edit dữ liệu trên lưới (có khóa ngoại)o Sử dụng TemplateFieldo Sử dụng EditItemTemplateo Sử dụng RowDataBoundo Kết hợp FindControl

Page 64: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 64 HIENLTH

GridView

� Xóa 1 lúc nhiều dòng trên lướio Thêm 1 cột CheckBox vào lướio Xóa các dòng đang được check

Page 65: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 65 HIENLTH

Repeater

� Ý ngh ĩa: o Định dạng dữ liệu từ data source, phân trang

� Các thành ph ần của repeater:o AlternatingItemTemplateo FooterTemplateo HeaderTemplateo ItemTemplateo SeparatorTemplate

Page 66: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 66 HIENLTH

Repeater

Template Mô tả

<HeaderTemplate> Chứa tiêuđề, chỉ xuất hiện một lần

<ItemTemplate> Phần chứa dữ liệu trong danh sách

<AlternatingItemTemplate> Template này chỉ áp dụng cho những dòng có thứ tự lẻ

<Separator Template> Xácđịnh nội dung HTML giữa các dòng

<FooterTemplate> Chỉ xuất hiện một lần cuối danh sách

Cấu trúc của Repeater

Page 67: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 67 HIENLTH

Repeater

� Lưu ý :

o<ItemTemplate> bắt buộc phải cóo<ItemTemplate>và

<AlternatingItemTemplate> dùng để chứa những dữ liệu, hay định dạng ngược chiều và xen kẽ nhau

ophần dữ liệu đặt trong các thẻ con có thể viết bằng codeInline

Page 68: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 68 HIENLTH

Ví dụ

� Xuất dữ liệu dùng repeater có dạng:

Page 69: Công ngh ệ .NET .NET Technology L ng Tr n Hy Hicomp1064.weebly.com/uploads/1/6/9/3/16936172/net07_performing_data_access.pdfCông ngh ệ .NET.NET Technology Lương Tr ần Hy

Công nghệ NET 69 HIENLTH

THE END