Upload
anh-duong
View
45
Download
0
Embed Size (px)
Citation preview
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 1/316
1
ASP.NET
Lê Văn Hạnh
Nguyễn Việt HùngTrần Đình Nghĩa Ngô Tân Khai
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 2/316
2
NỘI DUNG
I. Web tĩnh và động II. Giới thiệu về ASP.NETIII. IIS (Internet Information Services)IV. Các control trong ASP.NETV. Các đối tượng trong ASP.NETVI. ASP.NET & ADO.NETVII. Xây dựng ứng dụng bán sách qua
mạng
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 3/316
3
I.- Web tĩnh và động
1.- Web tĩnh
1. Trang HTML
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 4/316
4
I.- Web tĩnh và động
1.- Web tĩnh (tt)
<html><head>
<title>Simple HTMLpage</title>
</head>
<body><h1>Welcome</h1>You are visitor number 1!
</body></html>
Browser Server
(IIS)
Request("My.html")
Response(My.html)
My.html
My.html
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 5/316
5
I.- Web tĩnh và động
2.- Web động
1. Hoạt động tuân theo mô hìnhkhách/chủ (client/server)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 6/316
6
I.- Web tĩnh và động
2.- Web động (tt)
1. Các công nghệ tạo web động CGI (Common Gateway Interface)
Chương trình dạng nhị phân thi hành trên server C/C++, Pascal, Perl, ... 1 request = 1 CGI instance tốn bộ nhớ, chậm
ISAPI (Internet Server API) DLL
ASP (Active Server Page), JSP, ... Script Gom các giao tiếp ISAPI vào 1 DLL Dễ bảo trì, xử lý dữ liệu động nhanh, hiệu quả
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 7/316
7
NỘI DUNG (tt)
I. Web tĩnh và động II. Giới thiệu về ASP.NET
III. IIS (Internet Information Services)IV. Các control trong ASP.NETV. Các đối tượng trong ASP.NET
VI. ASP.NET & ADO.NETVII. Xây dựng ứng dụng bán sách qua mạng
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 8/316
8
II.- Giới thiệu về ASP.NET
1. Lịch sử phát triển 2. Một số khái niệm về ASP.NET3. Quy trình xử lý trang ASP.NET4. Các chỉ dẫn trong trang ASP.NET5.
IsPostBack và IsCrossPagePostBack6. Global.asax
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 9/316
9
II.-Giới thiệu về ASP.NET
1.-Lịch sử phát triển
1. Công nghệ ASP của Microsoft đã phát triển qua cácgiai đoạn chnh:
12 / 1996, ASP version 1.0 ( với IIS 3.0): công nghệ tạo webđộng
9/1997, ASP 2.0 (IIS 4.0) 11/2000, phiên bản cuối cùng của ASP – ASP version 3.0 (IIS5.0 ) 01/2002, công nghệ mới ASP.NET 1.0 cùng với bộ Visual
Studio.NET 04/2003 Microsoft phát hành phiên bản ASP.NET 1.1 cùng bộ
Visual Studio.NET 2003 & Windows Server 2003 07/2005, ASP.NET 2.0 – tên mã là Whidbey 23/01/2007, ASP.NET AJAX 1.0, phần mở rộng cho bộ
ASP.NET Hiện nay: ASP.Net 3.0 !
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 10/316
10
II.- Giới thiệu về ASP.NET
2.- Một số khái niệm
1. ASP là thuật ngữ viết tắt của Active Server Page
2. Là môi trường lập trình kết hợp với HTML, cácngôn ngữ kịch bản như VBScript, JavaScript… để tạo những ứng dụng Internet mạnh mẽ và hoàn
chỉnh
3. ASP chạy trên nền Internet Information Services(IIS)
4. ASP.NET kết hợp hai dòng triển khai công nghệ
web là Web Forms và Web Services.5. Chứa dữ liệu dạng text, HTML, XML và script
6. Các đoạn script được thực thi trên server
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 11/316
11
II- Giới thiệu về ASP.NET
2.- Một số khái niệm (tt)
7. Tạo ứng dụng web nhanh chóng đơn giản.
8. Kết xuất dữ liệu động của web.
9. Kiểm tra dữ liệu phía người dùng.
10. Kết nối, rút trích dữ liệu.11. Đơn giản và tốc độ nhanh.
12. Bảo mật hơn vì mã ASP không thể xem được từ trình duyệt.
13. Một chương trình ASP gọn gàng có thể giảm thiểu hiệu quả lưu lượng truyền tải qua một mạng truyền thông.
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 12/316
12
II.- Giới thiệu về ASP.NET
2.-Một số khái niệm (tt)
14. Phát triển ứng dụng web ở phía Server dựa trên nền tảng Microsoft .Net Framework
15. Cho phép lựa chọn một trong các ngôn ngữ lập trình:C#, Visual Basic.Net, J#, …
16. Sử dụng phong cách lập trình mới: Code behind .Tách phần code riêng, giao diện riêng Dễ đọc, dễ quản lý, bảo trì.
17. Tự động phát sinh mã HTML cho các Server control
tương ứng với từng loại browser.18. Đoạn mã trên ASP.Net được biên dịch chứ khôngdiễn dịch như ASP nên chạy nhanh hơn.
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 13/316
13
II.- Giới thiệu về ASP.NET
2.- Một số khái niệm (tt)
19. Kiến trúc lập trình trên ASP.Net giống ứng dụng trong Windows.
20. Xây dựng ứng dụng không cần đến IIS21. Hỗ trợ nhiều cơ chế cache.22. Triển khai cài đặt không cần lock, không
cần đăng ký DLL, cho phép nhiều hìnhthức cấu hình ứng dụng.23. Hỗ trợ quản lý ứng dụng ở mức toàn cục
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 14/316
14
II.- Giới thiệu về ASP.NET
2.- Một số khái niệm (tt)
24. Thay vì phải đọc và thông dịch mỗi khiđược yêu cầu, ASP.Net biên dịch trước những trang web động thành những tập tin DLL mà Server có thể thi hành nhanhchóng và hiệu quả.
H t ml p a g e
Server
ASPXEngine
Page DLL
trả lời
Gửi yêu cầu
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 15/316
15
II.- Giới thiệu về ASP.NET
2.- Một số khái niệm (tt)
25. Dễ triển khai và cấu hình Machine.config: cấu hình cho mọi ứng dụng
ASP.NET trên máy chủ Web.config: cấu hình cho từng Web Site tương
ứng
26. Cung cấp nhiều điều khiển server mới: Dữ liệu Điều hướng Đăng nhập Themes & Skin
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 16/316
16
II.- Giới thiệu về ASP.NET
3.- Quy trình xử lý trang ASP.NET
1. Khi Web Servernhận được yêucầu từ phía
client, nó sẽ tìmkiếm tập tinđược yêu cầu thông qua chuỗi
URL được gửi về, sau đó tiến hành xử lý theosơ đồ sau:
Servertìm kiếmtập tin
Xử lýtập tin ASPX
Thay đổi ? Biêndịch
Lưu trữ dướidạng DLL Thi hành
trang ASPX
có
Không
Hồi đáp
Biên dịch lỗi
Yêu cầu
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 17/316
17
II.- Giới thiệu về ASP.NET
3.- Quy trình xử lý trang ASP.NET (tt)
2. Hai loại lệnh được gửi đến server: + GET:
http://www.abcxyz123.com/site/index.asp?page=5 Tên miền http://www.abcxyz123.com/ Đường dẫn “ /site/ ” Trang web duyệt “index.asp” hay “default.asp” Thêm một số tham số sau dấu chấm hỏi (?) –các tham
số phân cách nhau bằng dấu “&” và cú pháp là“tênthamsố=giátrị”.
+ POST: Tham số được gửi riêng trong 1 HTTP header chứ không
thể hiện trong URL như trên.
3. Web form của ASP.Net thường sử dụng POST.
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 18/316
18
II.- Giới thiệu về ASP.NET
3.- Quy trình xử lý trang ASP.NET (tt)
… <body><form id="form1" runat="server" method="post" action="Default.aspx"><div>
<asp:Button ID="Button1" runat="server" Text="Button"PostBackUrl="~/Default.aspx"/>
<asp:Label ID="Label1" runat="server" ForeColor="Red" Text="Label"Width="375px"></ asp:Label><br />Nội dung trong form gõ bằng văn bản thường.<%dim i as integerfor i=1 to 5
Response.Write("<BR><Font Size=" + CStr(i) + ">Font chữ cỡ " + CStr(i) +"</Font>")
next%></ div></ form>
</ body>
…
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 19/316
19
II.- Giới thiệu về ASP.NET
4.- Các chỉ dẫn trong trang ASP.NET
Page Assembly Control Implements
Import
Master OutputCache PreviousPageType Reference
Register
4. Dùng kiểm soát hành động của trang web haycác server control
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 20/316
20
II.- Giới thiệu về ASP.NET
5.- IsPostBack và IsCrossPagePostBack
1. Khi làm việc với thẻ Form trong ASP.NET,thuộc tính IsPostBack vàIsCrossPagePostBack giúp ta biết được
trang được gọi trực tiếp hay được submit2. Ví dụ:
If (IsPostBack)„Thực hiện việc khi trang được submit
Else„Thực hiện việc khi trang được gọi trực tiếp
End If
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 21/316
21
II.- Giới thiệu về ASP.NET
6.- Global.asax
1. Được gọi thực hiện tự động mỗi khicó một yêu cầu gửi đến web site
2. Add New Item / Global Application Class để thêm Global.asax vàoproject
3. Các lệnh được thực hiện thông quacác biến cố: Application_Start, Application_End,
Application_Error
Session_Start, Session_End
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 22/316
22
II.- Giới thiệu về ASP.NET
6.- Global.asax (tt)
4. Application_Start Được triệu gọi khi web site nhận được yêu cầu đầu
tiên
Thường được sử dụng để khởi tạo môi trường haycác biến tầm ứng dụng Ví dụ:
Sub Application_Start(ByVal sender As Object, ByVale As EventArgs)
' Code that runs on application startup
Application(“Visitors") = 0End Sub
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 23/316
23
II.- Giới thiệu về ASP.NET
6.- Global.asax (tt)
5. Application_End Xảy ra khi web site shut down Thường dùng để lưu trữ các dữ liệu cần
thiết cho lần Start kế tiếp và giải phóng tàinguyên do ứng dụng nắm giữ
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 24/316
24
II.- Giới thiệu về ASP.NET
6.- Global.asax (tt)
6. Application_Error Xảy ra khi phát sinh lỗi trong bất kỳ trang nào trong
web site
Thường dùng để chuyển đến các trang báo lỗi riêngcủa ứng dụng Ví dụ:
Sub Application_Error(ByVal sender As Object, ByVale As EventArgs)
' Code that runs when an unhandled error occurs
Response.Redirect("Errors.aspx")End Sub
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 25/316
25
II.- Giới thiệu về ASP.NET
6.- Global.asax (tt)
7. Session_Start Khác biệt với Application_Start, Session_Start được
gọi mỗi khi có một yêu cầu đầu tiên của một user
mới Thường dùng để khởi tạo môi trường hay các biến
cho riêng từng user Ví dụ:
Sub Session_Start(ByVal sender As Object, ByVal eAs EventArgs)' Code that runs when a new session is started
Application("Visitors") = CInt(Application("Visitors")) + 1End Sub
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 26/316
26
II.- Giới thiệu về ASP.NET
6.- Global.asax (tt)
8. Session_End Xảy ra khi một user kết thúc quá trình duyệt web site
(kết thúc phiên làm việc) Thường dùng để lưu trữ các biến của riêng user Ví dụ:
Sub Session_Start(ByVal sender As Object, ByVal e AsEventArgs)
' Code that runs when a new session is started
Application("Visitors") = CInt(Application("Visitors")) - 1 End Sub
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 27/316
27
NỘI DUNG (tt)
I. Web tĩnh và động II. Giới thiệu về ASP.NET
III. IIS (Internet Information Services) IV. Các control trong ASP.NETV. Các đối tượng trong ASP.NET
VI. ASP.NET & ADO.NETVII. Xây dựng ứng dụng bán sách qua mạng
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 28/316
28
III.- IIS (Internet Information Sevices)
1. Chức năng của IIS2. Mô hình hoạt động
3. Cài đặt 4. Sử dụng & cấu hình5. Ví dụ
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 29/316
29
1. IIS: Được sử dụng như một Web Server, kết hợp với ASP để
xây dựng các ứng dụng Web
Chuyển giao thông tin bằng giao thức chuyển đổi siêuvăn bản HTTP
2. IIS sử dụng trong: Xuất bản 1 Home page lên internet Tạo các giao dịch thương mại trên internet Truy xuất cơ sở dữ liệu từ xa
3. IIS là phần mềm của Microsoft dành cho Windows4. Windows 2000 và Windows XP tích hợp sẵn IIS
III.- IIS
1.- Chức năng
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 30/316
30
1. Hoạt động của IIS: IIS dịch URL sang path cục bộ (vd:
d:\domains\thisSite\wwwroot\site\index.aspx )
Sử dụng trình biên dịch Common LanguageRuntimedịch sang ngôn ngữ trung gian MSIL, rồi sang mã nhị phân để thực thi.
Mã nhị phân được chứa tạm vào 1 vùng. Nếu lần gọi sau cần sử dụng mà trang web không có gì thay đổi
thì sẽ lấy sử dụng mà không cần dịch lại. Nếu có thayđổi thì sẽ dịch lại và cập nhật vào vùng này.
Server trả về kết quả tương ứng với trình duyệt của client.
Trình duyệt client xử lý phần hiển thị.
III.- IIS
2.-Mô hình hoạt động
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 31/316
31
1. Để triển khai 1 ứng dụng, chỉ cần: IIS Framework Webforms(*. aspx) + dll(bin) +style(image,database,…) +
web.config
2. Để phát triển ứng dụng IIS .NET
3. IIS được tích hợp sẵn trong bộ cài Windows XP Control panel / Add Remove Programs / Windows
Components
III.- IIS
3.- Hướng dẫn cài đặt
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 32/316
32
III.- IIS
3.- Hướng dẫn cài đặt (tt)
4. Thư mục gốc củaWebServer
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 33/316
33
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 34/316
34
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 35/316
35
III.- IIS
4.- Sử dụng và cấu hình
5. Start Control Panel Administrative
Tools
InternetServicesManager.
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 36/316
36
III.- IIS
4.- Sử dụng và cấu hình (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 37/316
37
III.- IIS
4.- Sử dụng và cấu hình (tt)
6. Web Sites Default Web
site Properties
Thông tin thưmục gốc và Web mặc định
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 38/316
38
III.- IIS
4.- Sử dụng và cấu hình (tt)
7. Web Sites Default Web
site New Virtual
Directory
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 39/316
39
III.- IIS
4.- Sử dụng và cấu hình (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 40/316
40
III.- IIS
4.- Sử dụng và cấu hình (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 41/316
41
III.- IIS
4.- Sử dụng và cấu hình (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 42/316
42
III.- IIS
5.-V dụ
1. Tạo thư mục chứa Web Site: My Documents / Visual Studio 2005 / WebSites / TestWebSite
2. File / New / Web Site3. Chọn loại ứng dụng là ASP.NET WebSites4. Chọn Browse và chuyển đến thư mục vừa tạo. Ngôn ngữ là Visual Basic. OK.
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 43/316
43
III.- IIS
5.-V dụ (tt)
5. Cửa sổ Solution thể hiện nội dung ứng dụng vừa tạo như bên
6. Nội dung trang web mặc định
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 44/316
44
III.- IIS
5.-V dụ (tt)
7. Gõ thêm nội dung như sau
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 45/316
45
III.- IIS
5.-V dụ (tt)
8. Nhấn F5 để mở trang web trong Browser
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 46/316
46
III.- IIS
5.-V dụ (tt)
9. Trong trang Default.aspx, chuyển sang chế độ Design, bổ sung 1 button
control và 1 label control vào trangnhư hình vẽ sau:
10. Ta sẽ hiển thị dòng chữ clicked khiuser click vào button
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 47/316
47
III.- IIS
5.-V dụ (tt)
11. Double click vào button và gõ lệnh như sau: Label1.Text = "Clicked“
12. Nhấn F5 để chạy ứng dụng
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 48/316
48
NỘI DUNG (tt)
I. Web tĩnh và động II. Giới thiệu về ASP.NETIII.
IIS (Internet Information Services)IV. Các control trong ASP.NET
V. Các đối tượng trong ASP.NET
VI. ASP.NET & ADO.NETVII. Xây dựng ứng dụng bán sách qua mạng
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 49/316
49
IV.- CÁC CONTROL TRONG ASP.NET
1. Server control2. ASP.NET Server control3.
Các server control đặc biệt 4. Các server control mẫu 5. Các server control kiểm tra dữ liệu
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 50/316
50
IV.- Các control trong ASP.NET
1.- Server control
1. Một Form (còn gọi là Web Form) trongASP.NET được xem như một vật chứa cácserver control và client script
2. Trong ASP.NET, thay vì các mã lệnh ASP vàmã lệnh giao diện (HTML) bị trộn lẫn trong 1file, chúng được tách thành 2 file riêng biệt (.aspx.vb và .aspx)
3.
Các control khai báobằng
thẻ
HTMLtrước
đây
(client-side) được khuyến cáo thay bằng cácserver control (server-side)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 51/316
51
IV.- Các control trong ASP.NET
1.- Server control (tt)
4. Có hai loại server control: HTML server control (gọi là server
control)
ASP.NET server control (phần sau)
5. Server control chính là các
HTML control có thuộc tínhrunat=“server” <input id=“Button1” type=“submit”
value=“OK” runat=“server”/>
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 52/316
52
IV.- Các control trong ASP.NET
1.- Server control (tt)
6. Server controlđược phân thành
2 loại: Nhập liệu Chứa
C S
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 53/316
53
IV.- Các control trong ASP.NET
1.- Server control (tt)
7. Ví dụ: trang đăng nhập Xây dựng trang đăng nhập như sau:
Tạo mới 1 Web Form
Đặt vào Web Form 1 table, 2 textbox và 2button như hình sau
Click phải vào các control và chọn RunAs Server Control
Table
txtUser
txtPass
btnOK
btnReset
IV Cá l ASP NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 54/316
54
IV.- Các control trong ASP.NET
1.- Server control (tt)
8. Ví dụ: trang đăng nhập Double click vào button btnOK và viết
lệnh như sau:Protected Sub btnOK_ServerClick(ByVal sender As Object, ByVal e As System.EventArgs)
Handles btnOK.ServerClickDim ok As Boolean = TrueIf (txtUser.Value = "") Then
Response.Write("Bạn phải nhập trên truy cập") ok = False
End IfIf (txtPass.Value = "") Then
Response.Write("Bạn phải nhập mật khẩu") ok = False
End IfIf (ok) Then
Response.Write("Bạn đã đăng nhập với tên: " + txtUser.Value + ", mật khẩu: " +txtPass.Value)
End IfEnd Sub
IV Cá t l t ASP NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 55/316
55
IV.- Các control trong ASP.NET
1.- Server control (tt)
9. Ví dụ: trang đăng nhập Nhấn F5 để thực thi Form Sau khi nhập thông tin và nhấn Đăng nhập,
trang web có dạng như sau:
IV Cá t l t ASP NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 56/316
56
IV.- Các control trong ASP.NET
2.- ASP.NET Server control
1. HTML Server Control là cách nhanh nhất giúpchuyển đổi các ứng dụng ASP cũ sangASP.NET
2. Tuy nhiên, HTML Server Control không chophép cập nhật thuộc tính trực quan khi thiết kế 3. Định dạng cho các HTML Server Control được
thực hiện thông qua cú pháp CSS khôngtận dụng được tính hướng đối tượng
IV Cá t l t ASP NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 57/316
57
IV.- Các control trong ASP.NET
2.- ASP.NET Server control (tt)
IV Cá t l t ASP NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 58/316
58
IV.- Các control trong ASP.NET
2.- ASP.NET Server control (tt)
4. Được chia thành nhiều loại: Chuẩn: nhập liệu, chứa Danh sách (List): trình bày dữ liệu
Phức tạp (Rich): trình bày dữ liệu phức tạp (calendar, TreeView, AdRotator, Table, MultiView) Kiểm tra (Validation): kiểm tra dữ liệu nhập trên các
control khác
Mobile: hỗ trợ thiết bị cầm tay User control, Custom control
IV Các control trong ASP NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 59/316
59
IV.- Các control trong ASP.NET
2.- ASP.NET Server control (tt)
5. Ví dụ: trang đăng ký Tạo mới trang signin.aspx theo hình
sautxtUser
txtPass
calNgaySinh
btnOK
btnReset
IV Các control trong ASP NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 60/316
60
IV.- Các control trong ASP.NET
2.- ASP.NET Server control (tt)
Protected Sub btnOK_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnOK.ClickDim ok As Boolean = TrueDim str As String = ""If (txtUser.Text = "") Then
Response.Write("Bạn phải nhập trên truy cập")ok = False
Elsestr = "Bạn đã đăng ký với tên: " + txtUser.TextEnd IfIf (txtPass.Text = "") Then
Response.Write("Bạn phải nhập mật khẩu")ok = False
Elsestr += ", mật khẩu: " + txtPass.Text
End Ifstr += ", ngày sinh: " + calNgaySinh.SelectedDate.ToShortDateString()If (ok) Then
Response.Write(str)End If
End Sub
IV Các control trong ASP NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 61/316
61
IV.- Các control trong ASP.NET
2.- ASP.NET Server control (tt)
Protected Sub btnReset_Click(ByVal sender AsObject, ByVal e As System.EventArgs)
Handles btnReset.ClicktxtUser.Text = ""txtPass.Text = ""
calNgaySinh.SelectedDate = Date.Now()End Sub
IV Các control trong ASP NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 62/316
62
IV.- Các control trong ASP.NET
2.- ASP.NET Server control (tt)
6. Nhấn F5 để thực thi trang web. Saukhi nhập thông tin và click Chấp nhận, kết quả như sau:
IV Các control trong ASP NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 63/316
63
IV.- Các control trong ASP.NET
2.- ASP.NET Server control (tt): Thuộc tnh chung
AccessKey
BackColor BorderColor BorderWidth
BorderStyle CssClass Enables
EnableTheming
Font
ForeColor Height SkinID
Style TabIndex ToolTip
Width
7. Các control trong ASP.NET đều cóchung một số thuộc tính như sau:
IV Các control trong ASP NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 64/316
64
IV.- Các control trong ASP.NET
2.- ASP.NET Server control (tt) - Label
1. Dùng trình bày chuỗi trên trình duyệt 2. Tạo control label
<asp:Label property name=… Text=“…” /> Chọn control Label trên ToolBox vẽ vào
trang (Design), đặt thuộc tính name, Text
3. Khi kết xuất ra trình duyệt phía client,Label sẽ được diễn dịch thành thẻ <span>
IV.- Các control trong ASP.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 65/316
65
2.- ASP.NET Server control (tt) - TextBox
1. Cho phép user nhập và submit dữ liệu 2. <asp:TextBox ID=“…” runat=“server”
MaxLength=“100” Width=“139px” />3. Kéo control TextBox từ ToolBox vào
trang và điều chỉnh các thuộc tính4. Thuộc tính TextMode: chỉ định kết xuất
SingleLine: <input type=“Text” … />
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 66/316
66
IV.- Các control trong ASP.NET
2.- ASP.NET Server control (tt) – TextBox (tt)
MultiLine: <TextArea name=… /> Password: <input type=“password” … />
5. MaxLength: giới hạn số lượng ký tự
được nhập vào (0=không giới hạn) 6. ReadOnly: không cho chỉnh sửa dữ liệu
trong TextBox7. Enabled: giống ReadOnly nhưng control
không có Focus
IV - Các control trong ASP NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 67/316
67
IV.- Các control trong ASP.NET
2.- ASP.NET Server control (tt) – TextBox (tt)
8. Hầu hết các ASP.NET control đều có sự kiện riêng. Để chọn sự kiện cần chận vàxử lý, mở cửa sổ code-behind của trang,
chọn control phía bên trái, sự kiện phíabên phải
IV Cá t l t ASP NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 68/316
68
IV.- Các control trong ASP.NET
2.- ASP.NET Server control (tt) - HiddenField
1. Là control không hiển thị trong trìnhduyệt, cho phép lưu trữ dữ liệu (dotrang web ấn định) và được truy xuất
thông qua thuộc tính ID, Value2. Thường dùng để xác định nguồn gốc submit hay lưu trữ dữ liệu cần giấu user Trang ResultPresent.aspx dùng chung
cho trình bày dữ liệu từ nhiều trang khácnhau. Mỗi trang submit đến trang này đều có 1 HiddenField xác định cho riêng nó.
IV - Các control trong ASP NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 69/316
69
IV. Các control trong ASP.NET
2.- ASP.NET Server control (tt) - Button
1. Tạo các nút lệnh có chức năng Submit, Resethay Button thường tùy thuộc vào thuộc tínhUseSubmitBehavior
<asp:Button ID=“…” runat=“Server” Text=“…”/>
2. Tạo trang web có nội dung như sau TextBox kết quả có
ReadOnly=True Các Button có
UseSubmitBehavior=False
IV - Các control trong ASP NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 70/316
70
IV. Các control trong ASP.NET
2.- ASP.NET Server control (tt) – Button (tt)
3. Double click vào Button + và viết lệnh cho sự kiện Clicknhư sau:
Protected Sub btnCong_Click(ByVal sender As Object, ByVal
e As System.EventArgs) Handles btnCong.Click Dim n1, n2, kq As Double
n1 = Double.Parse(txtSo1.Text)
n2 = Double.Parse(txtSo2.Text)
kq = n1 + n2 txtKQ.Text = kq
End Sub
4. Các Button khác thực hiện tương tự
IV.- Các control trong ASP.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 71/316
71
IV. Các control trong ASP.NET
2.- ASP.NET Server control (tt) - ImageButton
1. Là một hình ảnh có chức năng tương tự như Button submit
2. Hình ảnh cung cấp cho ImageButton được chỉ định trong thuộc tính ImageURL
3. Các tập tin hình ảnh nên được Include vàoproject và lưu trữ trong cùng 1 thư mục
(click phải tên project, chọn New Folder)4. Kết xuất trình duyệt:
<input type=“image ... />
IV.- Các control trong ASP.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 72/316
72
IV. Các control trong ASP.NET
2.- ASP.NET Server control (tt) - LinkButton
1. Hành xử như button submit nhưng biểu hiện dưới dạng một liên kết
2. <asp:LinkButton ID=… />
3. Kết xuất trình duyệt: <A ID=“…” … />4. Khi tạo ra một LinkButton, nó sẽ hành xử
như một button thường
5. Để có tính năng submit, chỉ định trang sẽ submit đến trong thuộc tínhPostBackURL
IV.- Các control trong ASP.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 73/316
73
Các co t o t o g S
2.- ASP.NET Server control (tt) - HyperLink
1. Cho phép khai báo địa chỉ Internet hayFile và sẽ triệu gọi chúng khi user click
<asp:HyperLink ID=“…” runat=“server” NavigateURL=“http:// …” Text=“…”
ImageURL=“…”
/>
IV.- Các control trong ASP.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 74/316
74
g
2.- ASP.NET Server control (tt) - List
1. Trình bày dữ liệu dạng danh sáchphần tử DropDownList: chọn 1 trong danh sách
<asp:DropDownList ID=“…” runat=“server” /> </asp:DropDownList>
ListBox: chọn 1 hoặc nhiều phần tử <asp:ListBox ID=“…” runat=“server”
SelectionMode=“…”/> Single: chọn 1 Multiple: chọn nhiều
</asp:ListBox>
IV.- Các control trong ASP.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 75/316
75
g
2.- ASP.NET Server control (tt) – List (tt)
2. Để thêm dữ liệu vào dạng control này, tacó thể làm theo 2 cách:
Sử dụng thuộc tính Items trong sự kiện Page_Load. Đây là cách thêm động các mục chọn dữ liệu cho control
Sử dụng thuộc tính Items trong cửa sổ
Properties khi thiết kế trang. Đây là cáchthêm tĩnh các mục chọn dữ liệu cho control
IV.- Các control trong ASP.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 76/316
76
g
2.- ASP.NET Server control (tt) – List (tt)
3. Các control dạng List có một số thuộc tính cần quan tâm:
SelectedItem : nhận về phần tử được chọn SelectedValue : nhận về giá trị khóa được
chọn
4. Sự kiện SelectedIndexChanged chobiết khi nào user click chọn phần tử mới (cần đặt thuộc tínhAutoPostBack=True)
IV.- Các control trong ASP.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 77/316
77
g
2.- ASP.NET Server control (tt) – List (tt)
5. Ví dụ: tạo 1 Web Form mới. Đặt vàoform các control như sau. Đặt thuộc tính AutoPostBack=True cho 3 control
dạng ListLabel DropDownList: cboNgay, cboNam
ListBox: lstThangLabel: lblKQ
IV.- Các control trong ASP.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 78/316
78
2.- ASP.NET Server control (tt) – List (tt)
6. View / Component Designer. Trongcửa sổ Properties, chọn , rồi double click vào sự kiện Load để
chận sự kiện Load của trang webIf Not IsPostBack ThenDim i As IntegerFor i = 1 To 31
cboNgay.Items.Add(i)
NextFor i = 1 To 12
lstThang.Items.Add(i)Next
For i = 1940 To 2010cboNam.Items.Add(i)
NextcboNgay.SelectedValue = "1"
lstThang.SelectedValue = "1"cboNam.SelectedValue = "1977"
End If
IV.- Các control trong ASP.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 79/316
79
2.- ASP.NET Server control (tt) – List (tt)
7. Xây dựng 2 function như sau trongcửa sổ code-behind
Private Function GetDate() As StringDim d As Stringd = cboNgay.SelectedValue & "/"d += lstThang.SelectedValue & "/"d += cboNam.SelectedValueReturn d
End Function
Private Function CheckDate() AsBoolean
Dim d As String, result As Dated = GetDate()
Return Date.TryParse(d, result)End Function
IV.- Các control trong ASP.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 80/316
80
2.- ASP.NET Server control (tt) – List (tt)
8. Double click vào từng control dạng List (cboNgay, lstThang, cboNam) vàviết lệnh như sau:If CheckDate() Then
lblKQ.Text = GetDate()Else
lblKQ.Text = "Ngày sai"End If
1. Nhấn F5 để thực thi trang web
IV.- Các control trong ASP.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 81/316
81
2.- ASP.NET Server control (tt) – CheckBox
1. Là một control cung cấp khả năng chọn lựa giữa hai trạng thái: có/không, bật/tắt
2. Thường dùng cung cấp một loạt các
chọn lựa cho phép user chọn nhiều mục <asp:CheckBox ID=“…” runat=“server”
Text=“…” />
3. Kết xuất trình duyệt:<input type=“checkbox” … />
IV.- Các control trong ASP.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 82/316
82
2.- ASP.NET Server control (tt) – CheckBox (tt)
4. Thuộc tính Checked cho biết control hiện có đang được chọn hay không5. Sự kiện CheckedChanged cho biết khi nào user
bật/tắt chọn lựa (AutoPostBack=True)6. Ví dụ: duyệt qua tất cả CheckBox trên Web Form
để tìm các CheckBox được chọn Dim ctl As Control For Each ctl In form1.Controls
If TypeOf (ctl) Is CheckBox Then Dim chk As CheckBox = ctl If (chk.Checked) Then
„ Lệnh xử lý End If
End If
Next
IV.- Các control trong ASP.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 83/316
83
2.- ASP.NET Server control (tt) –CheckBoxList
1. Nếu muốn tạo ra nhiều chọn lựa bằng CheckBox, ta phải tạo mỗi chọn lựa làmột CheckBox
2. CheckBoxList là một control cho phépchọn nhiều mục chọn, với mỗi mục chọn là một CheckBox
3. Hoạt động tương tự như ListBox cóSelectionMode=Multiple
IV.- Các control trong ASP.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 84/316
84
2.- ASP.NET Server control (tt) - RadioButton
1. Tương tự như CheckBox. Tuy nhiên, việc đánh dấu nhiều chọn lựa dạng RadioButton sẽ mang tính loại trừ
2. Các RadioButton có thuộc tínhGroupName mang cùng một giá trị sẽ thuộc cùng một nhóm và chọn lựa loại
trừ lẫn nhau
IV.- Các control trong ASP.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 85/316
85
3.- ASP.NET Server control đặc biệt (tt) - RadioButtonList
1. Thực chất, đây là một control dạng danhsách gói gọn nhiều RadioButton vào một control duy nhất
2. Cách thức hoạt động và sử dụng controlnày hoàn toàn tương tự như ListBox cóthuộc tính SelectionMode=Single
IV.- Các control trong ASP.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 86/316
86
3.- ASP.NET Server control đặc biệt (tt) - FileUpload
1. Cho phép user chọn file trên client và tải lên server
<asp:FileUpload ID=“…” runat=“server” />
2. Kết xuất trình duyệt:<input type=“file”…/>
3. HasFile : thuộc tính cho biết controlFileUpload có chứa tập tin upload haykhông
IV.- Các control trong ASP.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 87/316
87
3.- ASP.NET Server control đặc biệt (tt) – FileUpload (tt)
4. FileName : thuộc tính cho biết tên tập tinsẽ được upload
5. PostedFile : sử dụng thuộc tính
ContentLength của đối tượng này để kiểm tra kích thước tính bằng byte của file được upload
6. SaveAs : phương thức dùng upload thực sự và lưu file vào thư mục xác định trênserver
IV.- Các control trong ASP.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 88/316
88
3.- ASP.NET Server control đặc biệt (tt) – FileUpload (tt)
7. Tạo Web Form mới đặt tênFileUploadForm gồm cáccontrol như sau
8. Double click vào button Upload và viết lệnh như sau: Dim file As HttpPostedFile = FileUpload1.PostedFile
If (file.ContentLength < 100 * 1024) Then
FileUpload1.SaveAs("C:\Downloads\“+
FileUpload1.FileName)lblKQ.Text = "File đã được tải lên server"
Else
lblKQ.Text = "File có kích thước quá lớn"
End If
IV.- Các control trong ASP.NET
Fil U l d ( )
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 89/316
89
3.- ASP.NET Server control đặc biệt (tt) – FileUpload (tt)
9. Nhấn F5 để thực thi trang web, kết quả như hình dưới đây
IV.- Các control trong ASP.NET
M
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 90/316
90
3.- ASP.NET Server control đặc biệt (tt) - Menu
1. Tạo hệ thống trình đơn trên trang Web2. <asp:Menu ID=“…” runat=“server”/> 3. Một hệ thống trình đơn có thể được trình
bày theo chiều ngang hoặc dọc, quy định trong thuộc tính Orientation4. Hoạt động tựa như một cây phân cấp
5. Các menuitem con được quản lý thôngqua thuộc tính Items
IV.- Các control trong ASP.NET
M ( )
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 91/316
91
3.- ASP.NET Server control đặc biệt (tt) – Menu (tt)
6. Tạo mới Web Form Menu.aspx, bổ sung control Menu vào trang7. Click vào button … trong thuộc tính Items và thiết kế menu như
hình sau
8. F5 thực thi
Thêm nút gốc
Thêm nút con củanút hiện hành
Liên kết đến trangsẽ hiển thị
IV.- Các control trong ASP.NET
B ll t dLi t
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 92/316
92
3.- ASP.NET Server control đặc biệt (tt) - BulletedList
1. Trình bày thông tin theo dạng danh sáchbulleted
<asp:BulletedList ID=“…” runat=“server”> <asp:ListItem> Item 1 </asp:ListItem>
…
<asp:ListItem> Item n </asp:ListItem> </asp:BulletedList>
IV.- Các control trong ASP.NET
B ll t dLi t (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 93/316
93
3.- ASP.NET Server control đặc biệt (tt) – BulletedList (tt)
2. Thuộc tính DisplayMode cho phép chuyển đổi dạng trình bày của các ListItem theo: Text, HyperLink,LinkButton
3.
Nếu trình bày theo dạng HyperLink, ta nên điều chỉnh các thuộc tính như sau:< asp : BulletedList ID ="BulletedList1" runat ="server"
DisplayMode ="HyperLink">
< asp : ListItem Value ="~/FileUpload.aspx">Home
</ asp : ListItem > < asp : ListItem Value ="~/list.aspx">Tất cả sản phẩm
</ asp : ListItem >
</ asp : BulletedList >
IV.- Các control trong ASP.NET
ẫ
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 94/316
94
4.- Các server control mẫu
1. Login2. ChangePassword3. PasswordRecovery4. Học viên làm bài thu hoạch về các chức
năng, thuộc tính, sự kiện, phương thức và cách thức sử dụng 2 control
ChangePassword và PasswordRecovery
IV.- Các control trong ASP.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 95/316
95
4.- Các server control mẫu - Login
1. Là một Custom control được cung cấp sẵn
2. Khi thêm vào trang, control Login có
dạng
IV.- Các control trong ASP.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 96/316
96
4.- Các server control mẫu – Login (tt)
1. Thuộc tính: Thay đổi giao diện cho nút login:
LoginButtonText, LoginButtonType,LoginButtonImageUrl và LoginButtonStyle
Tiêu đề: TitleText, InstructionText UserName: UserNameLabelText,
UserNameRequiredErrorMessage Password: PasswordLabelText,PasswordRequiredErrorMessage
IV.- Các control trong ASP.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 97/316
97
4.- Các server control mẫu – Login (tt)
1. Thuộc tính: Tạo mới user: CreateUserIconUrl,
CreateUserText, CreateUserUrl Quên mật khẩu: PasswordRecoveryIconUrl,
PasswordRecoveryText, PasswordRecoveryUrl TextLayout: chỉ định vị trí của Label và TextBox
Orientation: hướng đặt các control FailureText: chuỗi thông báo login không thành
công
Các control trong ASP.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 98/316
98
Server control mẫu - Login
1. Sự kiện: Authenticate: user click nút Login
Protected Sub Login1_Authenticate(ByVal sender As Object, ByVale As System.Web.UI.WebControls.AuthenticateEventArgs) HandlesLogin1.Authenticate
Select Case Login1.UserName Case "admin" If (Login1.Password = "admin") Then e.Authenticated = True End If Case "user"
If (Login1.Password = "user") Then e.Authenticated = True End If End Select End Sub
Load: khi control được nạp vào trang
IV.- Các control trong ASP.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 99/316
99
4.- Các server control mẫu – Login (tt)
1. Tạo mới Web Form tên LoginCtl.aspx2. Bổ sung control Login
Điều chỉnh Auto Format theo ý thích InstructionText=Đăng nhập hệ thống FailureText=Thông tin đăng nhập sai LoginButtonText=Đăng nhập UserNameLabelText=Tên người dùng UserNameRequiredErrorMessage=Phải nhập tên người dùng PasswordLabelText=Mật khẩu PasswordRequiredErrorMessage=Phải nhập mật khẩu
PasswordRecoveryText=“Quên mật khẩu” PasswordRecoveryUrl=“ForgotPwd.aspx” CreateUserText=“Đăng ký” CreateUserUrl=“SignIn.aspx” DestinationPageUrl=“Default.aspx” DisplayRememberMe=False
IV.- Các control trong ASP.NET
L i ( )
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 100/316
100
4.- Các server control mẫu – Login (tt)
1. Viết lệnh cho sự kiện Authenticate như slide 98
2. Trang web thực thi như sau
IV.- Các control trong ASP.NET
5 Các server control kiểm tra
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 101/316
101
5.- Các server control kiểm tra
1. RequiredFieldValidator2. CompareValidator3. RangeValidator4. Học viên làm bài thu hoạch về các chức
năng, thuộc tính, sự kiện, phương thức và cách thức sử dụng 2 control
CompareValidator và RangeValidator
IV.- Các control trong ASP.NET
ể R i dFi ldV lid
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 102/316
102
5.- Các server control kiểm tra - RequiredFieldValidator
1. Dùng liên kết với 1 control bắt buộc user phải nhập dữ liệu vào2. Thuộc tính:
ErrorMessage: chuỗi hiển thị khi user không nhập
dữ liệu ControlToValidate: chỉ định control sẽ được kiểm tradữ liệu nhập
Text: tương tự ErrorMessage như có định dạng màu, font
EnableClientScript: cho phép xuất hiện cửa sổ thông báo
IV.- Các control trong ASP.NET
5 Cá t l kiể t RequiredFieldValidator (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 103/316
103
5.- Các server control kiểm tra – RequiredFieldValidator (tt)
1. Tạo trang SignInnhư sau
2. Bổ sung 3
RequiredFieldValidatortương ứng với 3 TextBoxtên người dùng, mật khẩu và gõ lại mật khẩu
IV.- Các control trong ASP.NET
5 Các server control kiểm tra RequiredFieldValidator (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 104/316
104
5.- Các server control kiểm tra – RequiredFieldValidator (tt)
Các control trong ASP.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 105/316
105
Bài tập
1. Xây dựng hệ thống trình đơn như sautrong trang default.aspx Trang chủ Default.aspx
Control đặc biệt FileUpload.aspx Mẫu và kiểm tra Login.aspx
Mẫu Login.aspx
Kiểm tra Required.aspx
NỘI DUNG (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 106/316
106
NỘI DUNG (tt)
I. Web tĩnh và động II. Giới thiệu về ASP.NETIII. IIS (Internet Information Services)IV. Các control trong ASP.NETV. Các đối tượng trong ASP.NET
VI. ASP.NET & ADO.NETVII. Xây dựng ứng dụng bán sách qua mạng
V - CÁC ĐỐI TƯỢNG TRONG ASP NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 107/316
107
V.- CÁC ĐỐI TƯỢNG TRONG ASP.NET
1. Response2. Request3. Server4. Application5. Session
6. HttpCookie
V.- Các đối tượng trong ASP.NET
1 Response
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 108/316
108
1.-Response
1. Dùng chuyển giao dữ liệu từ server về client thông qua giao thức HTTP
2. Thuộc lớp HttpResponse, bao gồm nhiều
thuộc tính và phương thức 3. Trong trang ASP.NET, Response được
xem như là một thuộc tính của trang
V.- Các đối tượng trong ASP.NET
1 R Ph ơng thức
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 109/316
109
1.-Response – Phương thức
1. Redirect(URL): chuyển tiếp từ trang hiện hành sang trang có địa chỉ URL
Response.Redirect(“~/login.aspx”)
2. Write(chuỗi ): ghi chuỗi ra luồng kết xuất HTTP. Chuỗi sẽ xuất hiện trong trangphản hồi về client
Response.Write(“Hello ASP.NET”)
V.- Các đối tượng trong ASP.NET
1 R Phương thức (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 110/316
110
1.-Response – Phương thức (tt)
3. Flush : chuyển giao về client ngay lập tức các dữ liệu trong bộ nhớ đệm
4. End : giống Flush nhưng sẽ ngưng thi
hành tất cả công việc còn lại Response.Write(“Dòng 1”) Response.End()
Response.Write(“Dòng 2 ”) Khi kết xuất về client, trang web chỉ xuất
hiện dòng chữ Dòng 1
V.- Các đối tượng trong ASP.NET
1 R Phương thức (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 111/316
111
1.-Response – Phương thức (tt)
5. SetCookie(HttpCookie ): cập nhật đối tượng Cookie đang tồn tại trong tập đối tượng HttpCookie
6. AppendCookie(HttpCookie ): bổ sung đối tượng Cookie vào tập đối tượng HttpCookie
V.- Các đối tượng trong ASP.NET
1 Response Thuộc tnh
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 112/316
112
1.-Response – Thuộc tnh
1. ContentType : chỉ định kiểu dữ liệu trả về cho client
Response.ContentType = “image/jpeg”
2. Charset : thiết lập hoặc lấy về thông tin về bộ mã ký tự trong trang web
Response.ContentType = “text/html”
Response.Charset = “utf -8 ”
V.- Các đối tượng trong ASP.NET 2 Req est
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 113/316
113
2.- Request
1. Cho phép lấy dữ liệu từ client về server khi client submit bằng phương thức post/get Post / Get ?
2. Đối tượng này có 4 thuộc tính là 4 đối tượng collection chính:
Form (POST) QueryString (GET) Cookies ServerVariables
V.- Các đối tượng trong ASP.NET 2 Request Form
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 114/316
114
2.- Request - Form
1. Thuộc tính AllKeys: chứa tất cả cáckhóa dữ liệu được submit lên server
For each key in Request.Form.AllKeys
Thực hiện xử lý key Next
2. Phương thức GetKey(i): lấy về khóadữ liệu thứ i
For i=0 to Resquest.Form.Count - 1Key = Request.Form.GetKey(i)
Next
V.- Các đối tượng trong ASP.NET 2 Request Form (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 115/316
115
2.- Request – Form (tt)
3. GetKey(Name ): lấy về khóa dữ liệu có tên làName
strPassword = Request.Form.Get(“txtPwd”)
strPassword = Request(“txtPwd”)
4. Tuy nhiên, trong ứng dụng, nếu ta sử dụng chủ yếu là các control của ASP.NET thì: Ít sử dụng đến phương thức Get
Nên sử dụng <tên control>.<tên thuộc tính>5. Chỉ sử dụng Request.Form nếu ta chỉ định
trang hiện hành sẽ submit đến 1 trang khác
V.- Các đối tượng trong ASP.NET 2 Request Form (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 116/316
116
2.- Request – Form (tt)
6. Xây dựng trang web có giao diện như sau txtUser
txtPwd
txtRetypePwd
cboDay, cboMonth,cboYear
chkEmail
txtNote
btnOK
V.- Các đối tượng trong ASP.NET 2 Request Form (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 117/316
117
2.- Request – Form (tt)
7. Hai TextBox txtPwd và txtRetypePwd cóTextMode = Password
8. txtNote có TextMode = MultiLine
9. Chận sự kiện Page_Load để viết lệnh điền dữ liệu vào 3 DropDownList ngày,tháng, năm như ví dụ trong slide 78
10. Xây dựng 2 phương thức GetDate vàCheckDate như trong slide 79
V.- Các đối tượng trong ASP.NET 2 Request Form (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 118/316
118
2.- Request – Form (tt)
11. Chận sự kiện click của btnOK:Dim ok As Boolean = TrueDim str As String = ""If (txtUser.Text = "") Then
Response.Write("Bạn phải nhập trên
truy cập<BR>")ok = False
End IfIf (txtPwd.Text = "") Then
Response.Write("Bạn phải nhập mật
khẩu<BR>")ok = False
End If
If (txtPwd.Text <> txtRetypePwd.Text)Then
Response.Write("Mật khẩu gõ lại không đúng<BR>")
ok = FalseEnd IfIf (CheckDate() = False) Then
Response.Write("Ngày sinhsai<BR>")
ok = FalseEnd If
V.- Các đối tượng trong ASP.NET 2 Request Form (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 119/316
119
2.- Request – Form (tt)
12. Chận sự kiện click của btnOK: (tt)If (ok) Then
MsgBox("Tài khoản được tạo thành công",MsgBoxStyle.Information Or MsgBoxStyle.OkOnly)
Response.Write("Bạn đã đăng ký thành công<BR>")Response.Write("Tên đăng nhập: " + txtUser.Text +
"<BR>")Response.Write("Password : " + txtPwd.Text +
"<BR>")Response.Write("Ngày sinh : " + GetDate() + "<BR>")If (chkEmail.Checked) Then
Response.Write("Có nhận email từ ban quản trị website<BR>")
ElseResponse.Write("Không nhận email từ ban quản trị
website<BR>")
End If
Response.Write("Ghichú : " + txtNote.Text+ "<BR>")
Response.Write("<a
href=""login.aspx"">Nhấn vào đây để đăng nhập</a>")Dim ctl As ControlFor Each ctl In
form1.Controlsctl.Visible = FalseNextEnd If
V.- Các đối tượng trong ASP.NET 2 Request – Form (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 120/316
120
2.- Request – Form (tt)
13. Ví dụ trên sử dụng cơ chế submit trên cùng1 trang14. Nếu ta muốn submit dữ liệu signin sang 1
trang khác thì lúc này ta sẽ sử dụng
Request.Form15. Để minh họa điều này, ta chỉnh sửa thuộc
tính PostBackURL của btnOK trong trangsignin.aspx thành “~/createuser .aspx”
16. Trang createuser.aspx được tạo mới vàchận bắt duy nhất 1 sự kiện PageLoad như sau:
V.- Các đối tượng trong ASP.NET 2 - Request – Form (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 121/316
121
2.- Request – Form (tt)
17. Sự kiện Page_Load của createuser.aspxDim user, pwd, retype, ngsinh, thsinh, nmsinh, email, gc As String
Dim ok As Boolean = True
Dim d As DateTime
user = Request("txtUser")
pwd = Request("txtPwd")
retype = Request("txtRetypePwd")
ngsinh = Request("cboNgay")
thsinh = Request("cboThang")
nmsinh = Request("cboNam")
email = Request("chkEmail")
gc = Request("txtNote")
V.- Các đối tượng trong ASP.NET 2 - Request – Form (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 122/316
122
2.- Request – Form (tt)18. Sự kiện Page_Load của createuser.aspx (tt)
If (user = "") ThenResponse.Write("Bạn phải nhập trên truy cập<BR>") ok = False
End IfIf (pwd = "") Then
Response.Write("Bạn phải nhập mật khẩu<BR>") ok = False
End IfIf (pwd <> retype) Then
Response.Write("Mật khẩu gõ lại không đúng<BR>")
ok = FalseEnd IfIf (DateTime.TryParse(ngsinh + "/" + thsinh + "/" + nmsinh, d) = False) Then
Response.Write("Ngày sinh sai<BR>")ok = False
End If
V.- Các đối tượng trong ASP.NET 2.- Request – Form (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 123/316
123
q ( )
19. Sự kiện Page_Load của createuser.aspx (tt)If (ok) ThenResponse.Write("Bạn đã đăng ký thành công<BR>")Response.Write("Tên đăng nhập: " + user + "<BR>")Response.Write("Password : " + pwd + "<BR>")
Response.Write("Ngày sinh : " + ngsinh + "/" + thsinh + "/" + nmsinh + "<BR>")If (email = "on") Then
Response.Write("Có nhận email từ ban quản trị website<BR>")Else
Response.Write("Không nhận email từ ban quản trị website<BR>")
End IfResponse.Write("Ghi chú : " + gc + "<BR>")Response.Write("<a href=""login.aspx"">Nhấn vào đây để đăng nhập</a>")
ElseResponse.Write("<a href=""signin.aspx"">Nhấn vào đây để đăng ký lại</a>")
End If
V.- Các đối tượng trong ASP.NET 2.- Request - ServerVariable
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 124/316
124
q
1. Cung cấp danh sách các tham số vàcác thiết lập của web server cũng như của website
2. Tương tự như Form, ServerVariablecũng cung cấp các thuộc tính vàphương thức như: AllKeys , Count ,
GetKey và Get 3. Thông tin chi tiết có thể tìm trong
MSDN
V.- Các đối tượng trong ASP.NET 2.- Request – Cookies
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 125/316
125
q
1. Cung cấp nhiều thuộc tính và phương thức cho phép lấy các cặp (tên cookie,giá trị) từ client
2. Tương tự 3 đối tượng trước đó, Cookiescũng cung cấp các thuộc tính và phương thức như: AllKeys , Count , GetKey và Get
3. Tuy nhiên, việc truy xuất Cookie thường được thực hiện theo cách đơn lẻ, cụ thể và ngắn gọn như sau:
V.- Các đối tượng trong ASP.NET 2.- Request – Cookies (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 126/316
126
( )
Truy xuất đến 1 cookie cụ thể:HttpCookie cookieUser =
Request.Cookies(“UserName”)
If (cookieUser <> nothing)
Dim strVal as String = Convert.ToString(cookie.Value)
„Xử lý với value
End If
V.- Các đối tượng trong ASP.NET 3.- Server
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 127/316
127
1. Đối tượng Server thuộc lớp HttpServerUtility cung cấp nhiều thuộc tính và phương thức phục vụ cho nhiều
mục tiêu khác nhau2. Thuộc tính MachineName cho biết tên
web server
3. Thuộc tính ScriptTimeout dùng để gánhay lấy thời gian tối đa cho phép thực thiphần xử lý kết quả trả về client trên
serverV.- Các đối tượng trong ASP.NET
3 - Server – Phương thức
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 128/316
128
3. Server Phương thức
1. MapPath(path ): trả về đường dẫn tuyệt đối trên web server ứng với đường dẫn tương đối path
WebSitePath = Server.MapPath(“ .”)
dbPath = WebSitePath & “ \data\qlbh.mdb”
2. Execute(page ): cho phép gọi thi hành cáclệnh khai báo trong trang page. Sau đó, trả
quyền điều khiển về lệnh kế tiếp trong tranghiện hành
Server.Execute(“doSomething .aspx”)
V.- Các đối tượng trong ASP.NET 3.- Server – Phương thức (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 129/316
129
3. Transfer(page ): cho phép chuyển xử lýsang các lệnh khai báo trong trang pagevà không trở về trang hiện hành
4. HtmlEncode : mã hóa một chuỗi định dạng HTML và trình bày trên trình duyệt Thường dùng để trình bày các dữ liệu có
dạng là ngôn ngữ HTML
V.- Các đối tượng trong ASP.NET 4.- Application
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 130/316
130
4. Application
1. Cho phép lưu và truy cập thông tintrong phạm vi toàn ứng dụng 2. Những thông tin này (biến) sẽ bị mất
đi khi ứng dụng khởi động lại 3. Khi làm việc với Application, cần kết hợp với các khai báo trongGlobal.asax
4. Cú pháp: Application(“name”) = value
value = Application(“name”)
V.- Các đối tượng trong ASP.NET 4.- Application – Phương thức
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 131/316
131
1. Đối tượng Application cũng cung cấp các thuộc tính và phương thức:AllKeys , Keys , Count , Get được sử
dụng tương tự như các đối tượng khác2. Lock / Unlock : do các biến Application
có thể được truy cập đồng thời từ nhiều trang, nên ta có thể khóa/mở khóa ghi dữ liệu bằng phương thức Lock/Unlock
V.- Các đối tượng trong ASP.NET 4.- Application – Session
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 132/316
132
1. Đối tượng Session gắn liền với khái niệm phiên làm việc Phiên làm việc của 1 user bắt đầu từ yêu cầu đầu
tiên của user này cho đến khi hết thời gian quy định
hoặc khi user đóng trang web cuối cùng trong cáctrang yêu cầu từ website
2. Dùng để lưu và truy xuất các biến trong phạm vi 1 phiên làm việc Thường dùng để lưu trữ và xác định các thông tin
cá nhân của từng user
V.- Các đối tượng trong ASP.NET 4.- Application – Session (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 133/316
133
3. Ngoài các thuộc tính và phương thức tương tự với đối tượng Application, đối tượng Session cung cấp một số thuộc
tính và phương thức khác như sau:4. Thuộc tính IsNewSession: cho biết yêu
cầu trang hiện hành có phải thuộc 1
phiên làm việc mới hay không
V.- Các đối tượng trong ASP.NET 4.- Application – Session (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 134/316
134
1. Ph/thức Add : cho phép thêm biến cùng với giátrị của nó ứng với phiên làm việc hiện hành
Session.Add(“UserID”, txtUser.Text)
2. Ph/thức Abandon/RemoveAll : hủy tất cả cácbiến trong phiên làm việc hiện hành3. Ph/thức Remove (“name”)/RemoveAt(i ): xóa
biến có tên name hoặc tại vị trí i trong phiên
làm việc hiện hành4. Đối tượng Session có thể lưu trữ các biến
dạng ArrayList , DataTable , DataRow , Array ,…
V.- Các đối tượng trong ASP.NET 4.- Application – HttpCookie
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 135/316
135
1. Khác với Session hoạt động trên server,HttpCookie cho phép lưu trữ và truy xuất các thông tin trên client
2. Cookie là tập thông tin được lưu trữ trên
máy tính của user khi họ truy cập đến website3. Có 2 loại cookie:
Temporary: thông tin mất đi khi user rời website Persistent: thôgn tin lưu trữ bền vững trên máy
tính của user, server có thể đọc lại những thôngtin này vào lần truy cập website kế tiếp của user
V.- Các đối tượng trong ASP.NET 4.- Application – HttpCookie (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 136/316
136
pp p ( )
4. Để đọc/ghi thông tin vào Cookie, ta sử dụng đối tượng HttpCookie, cho phéplấy hoặc gán giá trị thuộc tính của Cookie
5. Khai báo một cookie dạng đơn cookie = new HttpCookie(name, value)
6. Khai báo một cookie dạng phức lưu trữ nhiều cặp khóa và giá trị:
cookie = new HttpCookie(name)
Cookie.Values.Add(name1, value1)
Cookie Values Add(name2 value2)
V.- Các đối tượng trong ASP.NET 4.- Application – HttpCookie (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 137/316
137
pp p ( )
7. Để ghi cookie xuống máy tính client, sử dụng ph/thức Add của thuộc tính Cookies trong đối tượng Response
Response.Cookies.Add(cookie)
8. Để đọc cookie từ máy tính client, sử dụng thuộc tính Cookies trong đối tượng Request
cookie = Request.Cookies(“name”)
val = cookie.Values(“name”) val1 = cookie.Values(“name1”)
Các đối tượng trong ASP.NET Bài tập
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 138/316
138
Bài tập
1. Trình bày chức năng, cách thức sử dụng cácthuộc tnh/phương thức của các đối tượng sau: Response: Redirect, Write, Set/Add cookie Request: QueryString, Form, Cookie Application/Session: thêm/xóa/sửa biến HttpCookies
2. Từ website slide 105, bổ sung các yêu cầu:
User chỉ được truy cập trang FileUpload nếu đã đăng nhập website Điều chỉnh trang login.aspx cho phép ghi nhớ user.
3. Trình bày chi tiết các bước thực hiện bài tập 2.
Các đối tượng trong ASP.NET Bài tập
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 139/316
139
ậpDefault.aspx
Load Khai báo biến cookielấy giá trị userid. Nếucó cập nhậtSession(“userid”)
FileUpload.aspx
Load Lấy Session(“userid”).Nếu không có redirect lấyLogin.aspx
Login.aspx
cmdLogin_Click Nếu user và pwd hợp lệ
Nếu chọn Remember Tạo và lưu trữ cookie(“userid”) Cập nhật Session(“userid”)
NỘI DUNG (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 140/316
140
I. Web tĩnh và động II. Giới thiệu về ASP.NETIII. IIS (Internet Information Services)
IV. Các control trong ASP.NETV. Các đối tượng trong ASP.NETVI. ASP.NET & ADO.NET
VII. Xây dựng ứng dụng bán sách quamạng
VI.- ASP.NET & ADO.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 141/316
141
1. Các công nghệ truy xuất dữ liệu 2. Các đối tượng của ADO.NET3. Các đối tượng lưu trữ và xử lý dữ liệu 4. SqlDataSource & AccessDataSource5. Các control trình bày dữ liệu
GridView DetailsView & FormView DataList & Repeater User control & MasterPage
VI.- ASP.NET & ADO.NET
1.-Các công nghệ truy xuất dữ liệu
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 142/316
142
APPLICATION
ODBC
SQL Native Oracle Native Native Library
SQL Server Oracle Fox / Access
Kiến trúc ODBC.
VI.- ASP.NET & ADO.NET
1.-Các công nghệ truy xuất dữ liệu (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 143/316
143
APPLICATION
OLEDB
SQL Native Oracle Native Native Library
SQL Server Oracle Fox / Access
Kiến trúc OLEDB.
ODBC
VI.- ASP.NET & ADO.NET
1.-Các công nghệ truy xuất dữ liệu (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 144/316
144
ADO.NET Provider
APPLICATION .NET
OLEDB
SQL Native Oracle Native Native Library
SQL Server Oracle Fox / Access
Kiến trúc ADO.NET.
ODBC
SQL/Oracle Provider OLEDB Provider ODBC Provider
VI.- ASP.NET & ADO.NET
1.-Các công nghệ truy xuất dữ liệu (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 145/316
145
1.
Active Data Object .NET2. ADO.NET có thể kết nối và thao tác trên các hệquản trị CSDL như SQL server, MySQL, MSAccess, Oracle, . . .
3. Tối ưu cho các ứng dụng Internet và phân tán4. ADO.NET được thiết kế nhằm tăng tốc độ truy
cập và thao tác dữ liệu trong môi trường đa lớp.5. Hai thành phần chnh của ADO.NET là:
Thành phần kết nối (.NET Framework Data Providers) Thành phần lưu trữ và xử lý
VI.- ASP.NET & ADO.NET
2.- Các đối tượng của ADO.NET
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 146/316
146
1. .NET Framework Data Providers Connection Command
DataReader DataAdapter
2. Container – DataSet
DataTable = {DataRow, DataColumn,Constraint} DataView DataRelation
VI.- ASP.NET & ADO.NET
2.- Các đối tượng của ADO.NET (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 147/316
147
Database
.NET framework Data Provider
Data Reader
Data Adapter
Command
Parameters
Connection
SelectCommand
InsertCommand
Transaction
UpdateCommand
DeleteCommand
Dataset
DataRelationCollection
DataTableCollection
DataTable
DataRowCollection
DataColumnCollection
ConstraintCollection
XML
VI.- ASP.NET & ADO.NET
2.- Các đối tượng của ADO.NET (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 148/316
148
3. ADO.NET chỉ cung cấp một đặc tả giao tiếp cho cácđối tượng như Connection, Command, DataReader,DataAdapter
4. Các hệ quản trị CSDL sẽ được xây dựng riêng cáctrình điều khiển gọi là Provider
SQL Server .NET Data OLE DB .NET Data
System.Data.SqlClient System.Data.OleDb
SqlCommand
SqlConnection
SqlDataAdapter
SqlDataReader
SqlParameter
OleDbCommand
OleDbConnection
OleDbDataAdapter
OleDbDataReader
OleDbParameter
VI.- ASP.NET & ADO.NET
2.- Các đối tượng của ADO.NET (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 149/316
149
SQLServer
Access
ADO.NET
.NET Framework Data Provider
SQLConnection
SQLCommand
SQLDataAdapter
OleDBConnection
OleDBCommand
OleDBDataAdapter
DataSet
DataTableCollection
ProductsOrder
DataRelationCollection
Imports System.Data.SqlClient
Imports System.Data.OleDb
Imports System.Data
VI.- ASP.NET & ADO.NET
2.- Các đối tượng của ADO.NET (tt) - Connection
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 150/316
150
Phương th c
SqlConnection OleDbConnection
Open() Cho phep m kế t nô i CSDL với các thuc t nh khai báotrong ConnectionString
Close() Cho phep đong kế t nô i CSDL đang m
CreateCommand() Phương th c ny cho phep gán hay trả v mt đô i tưngSqlCommand / OleDbCommand ng với đô i tưngSqlConnection/ OleDbConnection
BeginTransaction()
Phương th c ny khai báo băt đầu 1 chuy n tác, đ kế t thc chuy n tác bạn sử dng Table Commit
Rollback() Trong trường hp co lỗi phát sinh bạn co th sử dngphương th c Rollback đ hy b các chuy n tác đ đưc th c hin
Dispose() Dng đ giải phong ti nguyên m đô i tưngSqlConnection đang sử dng
VI.- ASP.NET & ADO.NET
2.- Các đối tượng của ADO.NET (tt) – Connection (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 151/316
151
1. ConnectionString: chuỗi chỉ định kết nối 2. Mỗi Provider có riêng một định dạng chuỗi kết nối 3. SQLConnection:
“DataSource=(local);Initial Catalog=qlsv;user=sa;pwd=sa”
4. OleDBConnection:“Provider=SQLOLEDB;Data Source=(local);Initial Catalog=qlsv;Integrated Security=False;User ID=sa;Password=sa”
“Provider=SQLOLEDB;Data Source=(local);Initial Catalog=qlsv;Integrated Security=True;User ID=sa;Password=sa”
“Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\qlsv.mdb;User ID=Admin;Password=”
VI.- ASP.NET & ADO.NET
2.- Các đối tượng của ADO.NET (tt) – Connection (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 152/316
152
5. Kết nối CSDL với SQLConnectionDim connStr as String = “server=(local);Init Catalog=qlsv;Integrated
Security=False;User ID=sa;pwd=sa; ”
Dim dbConn As New System.Data.SqlClient.SqlConnection(connStr)
6. Kết nối CSDL với OleDbConnectionDim connStr as String = “Provider=SQLOLEDB;Data Source=(local);Init
Catalog=qlsv;User ID=sa;pwd=sa; ”
Dim dbConn As New System.Data.OleDb.OleDbConnection(connStr)
7. Thực hiện kết nối dbConn.Open() „ Mở kết nối
„… Các lệnh truy xuất và xử lý CSDL
dbConn.Close() „ Đóng kết nối
VI.- ASP.NET & ADO.NET
2.- Các đối tượng của ADO.NET (tt) – Command
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 153/316
153
8. Đối tượng Command cho phép thi hành các câu lệnh truy vấn SQL, gọi thủ tục nội của SQL Server, . . .
Thuộc tính Mô tả
Connection Mỗi đối tượng SqlCommand được sử dụng phải kèm theo đối tượng SqlConnection
CommandText Tên bảng, lệnh Sql hoặc tên Storeproceduremuốn thực hiện trên nguồn dữ liệu
CommandType Tương ứng với giá trị CommandText. Gồm
Text, TableDirect, StoredProcedureCommandTimeout Khai báo thời gian chờ cho câu lệnh thực hiện
(thời gian thực hiện mặc định là 30 giây)
Parameters Tập hợp các tham số dùng trong Command
VI.- ASP.NET & ADO.NET
2.- Các đối tượng của ADO.NET (tt) – Command (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 154/316
154
Phương thức Mô tả ExcuteNonQuery() Phương thức dùng để gọi thực thi các câu lệnh SQL,thủ tục nội tại của Sql Server, tên bảng dữ liệu.Kết quả trả về là số mẫu tin chịu tác động của Command
ExcuteReader() Phương thức này trả về một đối tượng DataReaderchỉ đọc một chiều. DataReader đọc dữ liệu trực tiếp từ nguồn dữ liệu nên phải duy trì kết nối cho đến khiđọc xong.
ExcuteScalar() Phương thức này thực hiện lệnh của Command vàtrả về giá trị của cột đầu tiên và dòng đầu tiên.Phương thức này thường được sử dụng khi muốn Command thực hiện các hàm tính thống kê như :SUM, COUNT, AVG, MAX, MIN… trên nguồn dữ liệu
ngay lúc thực thi
VI.- ASP.NET & ADO.NET
2.- Các đối tượng của ADO.NET (tt) – Command (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 155/316
155
9. Truy xuất dữ liệu Dim sql As String = “SELECT * FROM SINHVIEN ” Dim sql As String = “vMonHoc”
Dim sql As String = “sp_KetQuaSV”
Dim sql As String = “INSERT INTO KETQUA VALUES(„A01‟,‟K 1‟,9 )”
10. Truy xuất CSDL với SqlCommandDim dbCmd As New SqlCommand(sql, dbConn)
11. Truy xuất CSDL với OleDbCommandDim dbCmd As New OleDbCommand(sql, dbConn)
12. Thực hiện dbCmd.CommandType = CommandType.XXX
dbCmd.ExecuteReader() / ExecuteNoneQuery()
VI.- ASP.NET & ADO.NET
2.- Các đối tượng của ADO.NET (tt) – Command (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 156/316
156
13. Thực hiện và nhận kết quả vô hướng Gọi Stored Procedure - OleDbCommand
Dim dbCmd As New OleDbCommand(“select count(*) from MonHoc”, dbConn)
dbCmd.CommandType = CommandType.Text Dim SLMonHoc As Integer = dbCmd.ExecuteScalar()
Gọi Stored Procedure – SqlCommandDim dbCmd As New SqlCommand(“select count(*) from MonHoc”,
dbConn)
dbCmd.CommandType = CommandType.Text
Dim SLMonHoc As Integer = dbCmd.ExecuteScalar()
VI.- ASP.NET & ADO.NET
2.- Các đối tượng của ADO.NET (tt) – Command (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 157/316
157
14. Parameter dùng để truyền tham số cho chuỗi lệnh Sql trong thuộc tính CommandText có sử dụng dấu ? thay thế cho các giá trị chưa xác
định, hay thủ tục nội của Sql có thể cần phải truyền các tham số đầu vào/ đầu ra.
15. Cơ chế Parameter giúp cho việc truyền tải thông tin giữa ứng dụng và server mang tínhbảo mật và an toàn hơn cách thức nối chuỗi SQL thông thường
VI.- ASP.NET & ADO.NET
2.- Các đối tượng của ADO.NET (tt) – Command (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 158/316
158
Thuộc tính củaParameters
Mô tả
Direction Giá trị cho biết loại tham số với các giá trị sau:+ Input (mặc định): loại tham số đầu vào+Output: loại tham số đầu ra
+InputOutput: loại tham số vào/ra+ReturnValue: loại tham số nhận giá trị trả về của một thủ tục nội, một hàm, hàm do người dùng định nghĩa.
OleDbType
SqlDbType
Kiểu dữ liệu OleDb hoặc SqlDb của tham số (đọc ghi)
ParameterName Tên tham số (đọc ghi)
Value Giá trị của tham số (đọc ghi)
VI.- ASP.NET & ADO.NET
2.- Các đối tượng của ADO.NET (tt) – Command (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 159/316
159
16. Để đưa tham số cho Command, chúng ta cóthể sửa dụng một trong các cách sau: Dùng phương thức CreateParameter của
Command và Add của tập hợp Parameters Đưa tham số vào tập hợp Parameters
Tạo tham số và đưa vào tập hợp Parameters
VI.- ASP.NET & ADO.NET
2.- Các đối tượng của ADO.NET (tt) – Command (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 160/316
160
17. Stored Procedure có tham số Create Procedure sp_KetQuaSV
@masv as nvarchar(10)
As Begin
Select MaSV, HoSV, TenSV, TenMH, Diem
From SinhVien sv, KetQua kq, KhoaHoc k, MonHoc mh Where sv.MaSV=@masv AND sv.MaSV=kq.MaSV AND
kq.MaKH=k.MaKH AND k.MaMH=mh.MaMH
End
VI.- ASP.NET & ADO.NET
2.- Các đối tượng của ADO.NET (tt) – Command (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 161/316
161
18. Gọi Stored Procedure - OleDbCommandDim dbCmd As New OleDbCommand(“sp_KetQuaSV”, dbConn)dbCmd.CommandType = CommandType.StoredProcedure dbCmd.Parameters.Add("@masv", OleDbType.VarWChar).Value =
"A01"
dbCmd.ExecuteNonQuery()19. Gọi Stored Procedure – SqlCommand
Dim dbCmd As New SqlCommand(“sp_KetQuaSV”, dbConn)dbCmd.CommandType = CommandType.StoredProcedure dbCmd.Parameters.Add("@masv", SqlType.NVarChar).Value = "A01"
dbCmd.ExecuteNonQuery()
VI.- ASP.NET & ADO.NET
2.- Các đối tượng của ADO.NET (tt) – DataAdapter
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 162/316
162
1. Dùng luân chuyển và trao đổi dữ liệu, xử lý logic một cách hiệu quả giữa ứng dụng và CSDL
2. Mỗi đối tượng Command là một lệnh tách rời. DataAdapter cung cấp cùng lúc4 đối tượng Command: Select, Insert,
Update, Delete.3. DataAdapter không lưu trữ dữ liệu mà
chỉ đóng vai trò cầu nối giữa Connection
à D t T bl (D t S t)VI.- ASP.NET & ADO.NET
2.- Các đối tượng của ADO.NET (tt) – DataAdapter (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 163/316
163
4. Khai báo sử dụng: Dim adap As New SqlDataAdapter(dbCmd)
Dim adap As New OleDbDataAdapter(dbCmd)
5. Lưu ý: dbCmd là đối tượng SqlCommand hoặc OleDbCommandtương ứng, đã được tạo ra với
SqlConnection hoặc OleDbConnectiontương ứng và Connection này phải đã được mở (Open).
VI.- ASP.NET & ADO.NET
2.- Các đối tượng của ADO.NET (tt) – DataAdapter (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 164/316
164
6. Fill – Đọc và lưu trữ dữ liệu DataAdapter cung cấp 4 đối tuợng
Command trong đó phương thức Fill
tương ứng với việc gọi SELECT Command Lệnh khai báo đối tượng ở slide trước chỉ
nên dùng cho các đối tượng Commandthực hiện lệnh SELECT
Khi tạo DataAdapter có sử dụng cả 4Command, chúng ta nên tạo riêng từng Command này.
VI.- ASP.NET & ADO.NET
2.- Các đối tượng của ADO.NET (tt) – DataAdapter (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 165/316
165
7. SELECT Command (đổi Sql thành OleDb để sử dụng OLEDB)
Dim adap As New SqlDataAdapter
adap.SelectCommand = New SqlCommand(“SELECT * FROM MonHoc”, dbConn)
Dim tbl As New DataTable
adap.Fill(tbl)
„ Các lệnh xử lý khác
VI.- ASP.NET & ADO.NET
2.- Các đối tượng của ADO.NET (tt) – DataAdapter (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 166/316
166
8. Update – Cập nhật dữ liệu Phương thức Update hoạt động dựa trên 3
Command còn lại (Insert, Update, Delete) Khi trình bày dữ liệu trên Form thông qua
các control, phương thức Update sẽ tự động cập nhật tất cả thay đổi lên CSDL
thông qua 3 Command này Trước khi sử dụng, phải xây dựng tường
minh 3 Command này
VI.- ASP.NET & ADO.NET
2.- Các đối tượng của ADO.NET (tt) – DataAdapter (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 167/316
167
9. Đổi Sql thành OleDb để sử dụng OLEDB INSERT Command…
adap.InsertCommand = New SqlCommand(“INSERT INTO MonHoc
VALUES (@mamh, @tenmh, @sotc)”, dbConn)
adap.InsertCommand.Parameters. Add(“@mamh”).SourceColumn=“MaMH ”
adap.InsertCommand.Parameters. Add(“@tenmh”).SourceColumn=“TenM H”
adap.InsertCommand.Parameters. Add(“@sotc”).SourceColumn=“SoTC”
VI.- ASP.NET & ADO.NET
2.- Các đối tượng của ADO.NET (tt) – DataAdapter (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 168/316
168
9. Đổi Sql thành OleDb để sử dụng OLEDB (tt) UPDATE Command…
adap.UpdateCommand = New SqlCommand(“UPDATE MonHoc SET
TenMH=@tenmh, SoTC=@sotc WHERE MaMH=@mamh”, dbConn)
adap.UpdateCommand.Parameters. Add(“@mamh”).SourceColumn=
“MaMH”
adap.UpdateCommand.Parameters. Add(“@tenmh”).SourceColumn= “TenMH”
adap.UpdateCommand.Parameters. Add(“@sotc”).SourceColumn=“SoTC”
VI.- ASP.NET & ADO.NET
2.- Các đối tượng của ADO.NET (tt) – DataAdapter (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 169/316
169
9. Đổi Sql thành OleDb để sử dụng OLEDB (tt) DELETE Command… adap.DeleteCommand = New SqlCommand(“DELETE MonHoc WHERE
MaMH=@mamh”, dbConn)adap.DeleteCommand.Parameters. Add(“@mamh”).SourceColumn=
“MaMH”
10. Sau khi xây dựng đủ 4 Command, sử dụng Fill để thực hiện SELECT Command lấy dữ liệu, sử dụng Update để cập nhật
dữ liệu Dim tbl As New DataTable adap.Fill(tbl) „ Các lệnh thao tác khác
adap Update(tbl)
VI.- ASP.NET & ADO.NET
2.- Các đối tượng của ADO.NET (tt) – DataAdapter (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 170/316
170
11. Sử dụng đối tượng SqlCommandBuilder / OleDBCommandBuilder để xây dựng tự động 3 Command còn lại dựa vào SELECT
Command được cung cấp ban đầu Dim adap As New SqlDataAdapter(“select * from
SinhVien”, dbConn)
Dim cmdBuilder = New OleDbCommandBuilder(adap)
Dim tbl As New DataTable
adap.Fill(tbl)
...
VI.- ASP.NET & ADO.NET
3.- Lưu trữ và xử lý dữ liệu
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 171/316
171
1. DataTable2. DataSet
VI.- ASP.NET & ADO.NET
3.- Lưu trữ và xử lý dữ liệu - DataTable
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 172/316
172
1. Dùng lưu trữ và xử lý dữ liệu được lấy từ CSDLthông qua đối tượng DataAdapter2. DataTable có khả năng tạo bảng mới với cấu
trúc bảng được tạo thông qua các đối tượng
DataColumn; thêm dữ liệu mới và cập nhật dữ liệu đã có bằng DataRow3. Trong môn học này, DataTable chủ yếu được
dùng để lưu trữ dữ liệu phục vụ cho việc trình
bày dữ liệu trên Form4. Khai báo sử dụng Name space:
Imports System.Data
VI.- ASP.NET & ADO.NET
3.- Lưu trữ và xử lý dữ liệu – DataTable (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 173/316
173
Thuộc tính Mô tả ChildRelations Tập hợp những quan hệ trong đó bảng đóng vai trò bảng
cha
ParentRelations Tập hợp những quan hệ trong đó bảng đóng vai trò bảng con
TableName Tên của DataTable
Columns Tập hợp các cột trong bảng (thuộc lớp DataColumn)
Rows Tập hợp các dòng dữ liệu của bảng (thuộc lớp DataRow)
Constraints Tập hợp các ràng buộc trong bảng
DataSet Cho biết DataSet chứa bảng
DefaultView Cho biết DefaultView phát sinh từ bảng
PrimaryKey Mảng các cột có chức năng làm khoá chính của bảng
VI.- ASP.NET & ADO.NET
3.- Lưu trữ và xử lý dữ liệu – DataTable (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 174/316
174
Phương thức Mô tả GetChanges() Trả về một DataTable chứa các dòng dữ liệu bị người dùng
thay đổi
RejectChanges() Hủy bỏ tất cả những thay đổi của người dùng trên dữ liệu
AcceptChanges() Chấp nhận tất cả những thay đổi của người dùng trên dữ liệu
Clear() Xóa toàn bộ dữ liệu trong bảng
Copy() Tạo DataTable mới có cùng cấu trúc và dữ liệu
Clone() Tạo DataTable mới có cùng cấu trúc nhưng không có dữ liệu
LoadDataRow Thêm các dòng dữ liệu mới dạng mảng vào bảng
WriteXml Ghi toàn bộ cấu trúc và dữ liệu ra file XML
ReadXml Đọc lại toàn bộ cấu trúc và dữ liệu từ file XML
VI.- ASP.NET & ADO.NET
3.- Lưu trữ và xử lý dữ liệu - DataSet
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 175/316
175
1. ADO.NET hoạt động theo cơ chế Disconnected Tạo kết nối CSDL khi cần Ngắt kết nối khi thực hiện xong thao tác
2. Ưu điểm Không chiếm giữ nhiều tài nguyên Phục vụ được nhiều ứng dụng
3. Khuyết điểm Những thay đổi trên CSDL diễn ra tại một nơi khác sẽ không được cập nhật ngay cho người dùng
VI.- ASP.NET & ADO.NET
3.- Lưu trữ và xử lý dữ liệu – DataSet (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 176/316
176
4. DataSet có thể được xem như một CSDLthu nhỏ, do nó có thể bao gồm nhiều: DataTable (các table, view trong CSDL)
DataView DataRelation Stored Procedure
5. Khai báo sử dụng NameSpace:Imports System.Data
VI.- ASP.NET & ADO.NET
3.- Lưu trữ và xử lý dữ liệu – DataSet (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 177/316
177
DataSet
DataTable
Columns
Rows
DataColumn
DataRow
Tables
Relations DataRelation
VI.- ASP.NET & ADO.NET
3.- Lưu trữ và xử lý dữ liệu – DataSet (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 178/316
178
Thuộc tính Mô tả
Relations Tập hợp các quan hệ
một-nhiều giữa cácDataTable của DataSetTables Tập hợp các bảng, view,
stored procedure của DataSet
Name Tên của DataSet
VI.- ASP.NET & ADO.NET
3.- Lưu trữ và xử lý dữ liệu – DataSet (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 179/316
179
6. Sử dụng các phương thức Add, Removecủa hai đối tượng thuộc tính Relations vàTables để thêm, xóa DataTable hay
DataRelation vào DataSet7. Khi sử dụng phương thức Fill của
DataAdapter cho DataSet thì DataSet sẽ
có số lượng DataTable tương ứng với số lượng câu truy vấn trong đối tượng SELECT Command của DataAdapter
VI.- ASP.NET & ADO.NET
4.- SqlDataSource & AccessDataSource
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 180/316
180
1. Các đối tượng kết nối CSDL trên đây giúp tathực hiện tổ chức kết nối, truy vấn dữ liệu chotrang web thông qua mã lệnh
2. ASP.NET sử dụng thêm một loại kết nối CSDL
khác gói gọn các đối tượng Connection,DataAdapter, DataSet thành một đối tượng SqlSataSource : dùng truy xuất CSDL SQL Server AccessDataSource : dùng truy xuất CSDL Access ObjectDataSource: XMLDataSource
VI.- ASP.NET & ADO.NET
4.- SqlDataSource & AccessDataSource (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 181/316
181
3. Giúp tạo ra các kết nối CSDL một cách trực quan4. Giúp xây dựng trang web hỗ trợ CSDL một cáchnhanh chóng, hầu như không cần viết thêm mãlệnh
5. Kết hợp chặt chẽ với các control trình bày dữ liệu trên trang web6. Cách thức sử dụng giữa các DataSource là hoàn
toàn thống nhất 7.
Cung cấp Wizard giúp cấu hình chuỗi kết nối, chọn đối tượng dữ liệu, lọc dữ liệu từ các loại tham số khác nhau: Session, Request.QueryString,Request.Form, Value, WebControl, ...
VI.- ASP.NET & ADO.NET
4.- SqlDataSource & AccessDataSource (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 182/316
182
8. Khi chọn thêm control SqlDataSourcevào trang web , click vàohình mũi tên ở phía trên của control và
chọn Configure Data Source9. Nếu sử dụng lại kết nối dữ liệu trước đây, chọn từ danh sách ComboBox. Nếu tạo
mới
kết
nối
CSDL,chọn
NewConnection
VI.- ASP.NET & ADO.NET
4.- SqlDataSource & AccessDataSource (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 183/316
183
VI.- ASP.NET & ADO.NET
4.- SqlDataSource & AccessDataSource (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 184/316
184
10.
Chọn New Connection, hộp thoại sau xuất hiện 11. Chọn CSDL cần kết nối 12. Đối với CSDL SQL Server có thể chọn
loại kết nối là OLEDB hoặc SQL
13. Chọn Continue để tiếp tục
VI.- ASP.NET & ADO.NET
4.- SqlDataSource & AccessDataSource (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 185/316
185
14. Điền đầy đủ thôngtin về server name,user, password,CSDL
15. Chọn OK để tiếp tục
16.
Hộp thoại tạo SqlDataSourcexuất hiện lại
VI.- ASP.NET & ADO.NET
4.- SqlDataSource & AccessDataSource (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 186/316
186
VI.- ASP.NET & ADO.NET
4.- SqlDataSource & AccessDataSource (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 187/316
187
17. Nhấn Next sẽ xuất hiện hộp thoại đặt tênvà chọn lưu trữ cho chuỗi kết nối vừa tạo
18. Nhấn Next tiếp tục để mở hộp thoại xây
dựng câu lệnh SQL truy vấn dữ liệu 19. Nếu chọn lấy dữ liệu từ Table or View thì
chỉ được lấy dữ liệu từ 1 table hoặc view
nhưng cho phép ta thêm, xóa, sửa dữ liệu
VI.- ASP.NET & ADO.NET
4.- SqlDataSource & AccessDataSource (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 188/316
188
VI.- ASP.NET & ADO.NET
4.- SqlDataSource & AccessDataSource (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 189/316
189
VI.- ASP.NET & ADO.NET
4.- SqlDataSource & AccessDataSource (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 190/316
190
20. Chọn QueryBuilderđể tạo
truyvấn như slide
sau
VI.- ASP.NET & ADO.NET
4.- SqlDataSource & AccessDataSource (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 191/316
191
VI.- ASP.NET & ADO.NET
4.- SqlDataSource & AccessDataSource (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 192/316
192
21. Nhấn Next, Finish để hoàn tất quá trình tạo mới SqlDataSource
22. Quay trở lại bước xây dựng câu lệnh SQL truy vấn dữ liệu (slide 176), bây giờ ta chọn lấy dữ liệu từ
Table hay View. Chọn table là HangHoa và lấy tất cả các field trong table này23. Mặc định, SqlDataSource chỉ sinh mã cho
SELECT, nếu muốn tự phát sinh lệnh INSERT,UPDATE, DELETE ta chọn Advanced và clickchọn CheckBox tương ứng
24. Ta có thể click chọn WHERE để xây dựng phần lọc dữ liệu như slide sau
VI.- ASP.NET & ADO.NET
4.- SqlDataSource & AccessDataSource (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 193/316
193
23. Sau khichỉ định WHERE,nhấn OK
để quaytrở lại
24. Nhấn
Next,Finish để hoàn tất
VI.- ASP.NET & ADO.NET
4.- SqlDataSource & AccessDataSource (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 194/316
194
25. Sau khi đã tạo xong SqlDataSource, tacó thể bổ sung thêm các control để trìnhbày dữ liệu
26. Nếu muốn chỉnh sửa các thông tin kết nối và truy vấn dữ liệu, chọn ConfigureData Source
27. Nếu cấu trúc dữ liệu có thay đổi, chọn Refresh Schema
VI.- ASP.NET & ADO.NET
4.- SqlDataSource & AccessDataSource (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 195/316
195
28. Bổ sung control GridView vào trang web29. Chọn Data Source là SqlDataSource1
vừa tạo
30. Click chọn các CheckBox như slide sau
VI.- ASP.NET & ADO.NET
4.- SqlDataSource & AccessDataSource (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 196/316
196
VI.- ASP.NET & ADO.NET
4.- SqlDataSource & AccessDataSource (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 197/316
197
31. Chọn EditColumnsđể điều chỉnh thông tinHeadercho các
field như sau
VI.- ASP.NET & ADO.NET
4.- SqlDataSource & AccessDataSource (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 198/316
198
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 199/316
199
1. GridView2. DetailsView & FormView3. DataList
4. User control5. MasterPage
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu - GridView
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 200/316
200
1. Tương ứng với DataGrid trong ứng dụng Windows Forms2. Là control thông dụng nhất trong ứng
dụng Web3. Trình bày dữ liệu theo dạng phân chia
thành từng dòng, cột tương tự table
4. Cho phép chọn record cần xử lý, sắp xếp, cập nhật, phân trang
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – GridView (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 201/316
201
5. Cho phép định dạng khung lưới theo nhiều dạng khác nhau nhằm giúp việc quan sát dữ
liệu dễ dàng hơn 6. Click chọn nút mũi tên
phía trên bên phải
(SmartTag) của GridView và chọn Auto Format
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – GridView (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 202/316
202
7. Phân trang: AllowPaging = True PagerSettings
Mode:
PageButtonCount: chỉ định số lượng liên kết trang, nếu tổng số trangvượt quá số lượng này, link ... sẽ
xuất hiện Position:
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – GridView (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 203/316
203
8. Định dạng hiển thị chocác dòng
(row) trongGridView9. Chỉ định chức
năng hoạt động trên dữ liệu
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – GridView (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 204/316
204
10. Các cột trong GridView có thể tùy biến thành cácdạng BoundField (mặc định) CheckBoxField HyperLinkField ButtonField ImageField
11. Click chọn SmartTag / Edit Columns Xóa field tự động phát sinh muốn tùy biến (Selectedfields)
Chọn loại field và chỉnh sửa các thuộc tính tương ứng
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – GridView (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 205/316
205
12. Xóa MaHHtrong Selectedfields
13. AddHyperLinkField
14. Sửa HeaderTextthành Mã hàng
15. Sửa NavigateUrl,
DataTextField,DataNavigateUrlFields vàDataNavigateUrlFormatStringnhư hình bên
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – GridView (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 206/316
206
16. Sự kiện: PageIndexChanging
Sorting
SelectedIndexChanged : thường dùng để chuyển hướng đến trang web khác xử lý việc chọn 1 recordResponse.Navigate(“~/ProductDetail .aspx?ProductID=“+
GridView1.Rows(GridView1.SelectedIndex).Cells(2).Text
RowDeleting RowDataBound : xảy ra mỗi khi 1 record được điền vào
GridView
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – GridView (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 207/316
207
17. TemplateField: Thông thường, GridView trình bày dữ
liệu trong chế độ ReadOnly bằng các
Label control trong mỗi cell Tuy nhiên, ta có thể thay Label control
bằng các loại control khác như: TextBox,
DropDownList, ListBox, LinkButton,Image, ... thông qua TemplateField
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – GridView (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 208/316
208
18. TemplateField – TextBox Trong hộp thoại Edit Columns, chọn cột
muốn chuyển dạng trình bày thành TextBox,rồi chọn Convert this field into a
TemplateField . Ví dụ, ta chọn cột DonGia Chuyển sang cửa sổ mã lệnh khai báo giao
diện, ta tìm thấy thẻ khai báo cột DonGiachuyển thành như sau:
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – GridView (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 209/316
209
< asp : TemplateField HeaderText ="Đơn giá" SortExpression ="DonGia"> < EditItemTemplate >
< asp : TextBox ID ="TextBox1" runat ="server"
Text ='<%# Bind("DonGia")%>'></ asp : TextBox > </ EditItemTemplate > < ItemTemplate >
< asp : Label ID ="Label1" runat ="server" Text ='<%#
Bind("DonGia") %>'></ asp : Label > </ ItemTemplate >
</ asp : TemplateField >
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – GridView (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 210/316
210
19. Với mỗi cột có định dạng TemplateField,GridView sẽ tạo ra 2 control tương ứng với 2 chế độ ReadOnly (ItemTemplate)và Edit (EditItemTemplate)
20. Bây giờ, nếu muốn TextBox sẽ hiển thị trong chế độ ReadOnly, ta chuyển khaibáo Label thành TextBox
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – GridView (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 211/316
211
< asp : TemplateField HeaderText ="Đơn giá" SortExpression ="DonGia"> < EditItemTemplate >
< asp : TextBox ID ="TextBox1" runat ="server"
Text ='<%# Bind("DonGia")%>'></ asp : TextBox > </ EditItemTemplate > < ItemTemplate >
< asp : TextBox ID =“ TextBox1" runat ="server"
Text ='<%# Bind("DonGia") %>'></ asp : TextBox > </ ItemTemplate >
</ asp : TemplateField >
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – GridView (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 212/316
212
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – GridView (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 213/316
213
21. TemplateField – DropDownList Trong hộp thoại Edit Columns, chọn cột
muốn chuyển dạng trình bày thành TextBox,rồi chọn Convert this field into a
TemplateField . Ví dụ, ta chọn cột MaLoai Chuyển sang cửa sổ mã lệnh khai báo giao
diện, ta tìm thấy thẻ khai báo cột MaLoaichuyển thành như sau:
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – GridView (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 214/316
214
< asp : TemplateField HeaderText ="Loại hàng" SortExpression ="MaLoai">
< EditItemTemplate >
< asp : TextBox ID ="TextBox2" runat ="server"
Text ='<%# Bind("MaLoai") %>'></ asp : TextBox > </ EditItemTemplate >
< ItemTemplate >
< asp : Label ID ="Label1" runat ="server" Text ='<%#
Bind("MaLoai") %>'></ asp : Label > </ ItemTemplate >
</ asp : TemplateField >
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – GridView (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 215/316
215
22. TemplateField – DropDownList: Tương tự như TextBox TemplateField,
GridView cũng phát sinh 2 khai báo cho
2 chế độ. Trước khi chuyển sang sử dụng
DropDownList cho GridView, ta cần chuẩn bị trước nguồn dữ liệu cho
DropDownList này Bổ sung SqlDataSource vào trang và chỉ
định lấy dữ liệu từ table LoaiHH
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – GridView (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 216/316
216
23. TemplateField – DropDownList: Chọn Edit Template trong
SmartTag, cửa sổ chỉnh sửa
template sau xuất hiện Xóa TextBox và bổ sung
DropDownList vàoItemTemplate
Click SmartTag của DropDownList và chọn ChooseData Source rồi chỉnh sửa như sau:
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – GridView (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 217/316
217
Nguồn dữ liệu
Tên field chứa dữ liệu
hiển thị
Tên field chứa dữ liệucập nhật
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – GridView (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 218/316
218
24. TemplateField – DropDownList Các công việc ta thực hiện cho
đến thời điểm này là thay đổi
control hiển thị cho chế độ ReadOnly (ItemTemplate) Click SmartTag của GridView1,
chọn EditItemTemplate trongdanh sách Display để tiếp tục thayđổi control hiển thị cho chế độ Editcủa cột LoaiHang
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – GridView (tt)
25 TemplateField – DropDownList
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 219/316
219
25. TemplateField DropDownList Tiếp tục thay control TextBox thành DropDownList Thực hiện chỉ định dữ liệu như đã làm với
ItemTemplate
Ngoài ra, ta muốn khi user click chọn giá trị trongDropDownList thì MaHH được chọn sẽ cập nhật vàocột MaHH trong table LoaiHH Chọn Edit DataBindings từ SmartTag của DropDownList Chọn SelectedValue và Field binding tương ứng với nó là
MaHH. Nghĩa là giá trị được chọn sẽ cập nhật vào MaHH của GridView
Chọn End Edit Template trong SmartTag của GridView1
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – GridView (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 220/316
220
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – GridView (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 221/316
221
Bổ sungImageField
Chỉ định
DataImageUrlField là tênfield chứa đường dẫn đến hình ảnh, DataImageUrlFormatStringlà Images/{0}
26.TemplateField – ImageField
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – GridView (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 222/316
222
27. TemplateField – Điều khiển kiểm tra GridView cho phép ta bổ sung các điều khiển kiểm
tra dữ liệu nhập cho các cột
Điều khiển kiểm tra có thể là một điều khiển kiểm tra bất kỳ đã được đề cập Chọn Edit Template rồi chọn tiếp EditItemTemplate
cho cột DonGia
Bổ sung RequiredFieldValidator và thiết đặt thuộc tính ControlToValidate là TextBox1. Đồng thời đặt thuộc tính ErrorMessage là Bắt buộc nhập
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – GridView (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 223/316
223
27. TemplateField – Điều khiển kiểm tra (tt)
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – GridView (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 224/316
224
Chọn Edit, xóa DonGia,chọn Update báo lỗi “Bắt
buộc nhập”
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu –- DetailsView
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 225/316
225
GridView cho ta sự quan sát dữ liệu tổng quát,cho phép chỉnh sửa, xóa dữ liệu. Tuy nhiên,GridView không cho phép thêm mới dữ liệu
DetailsView cung cấp góc nhìn chi tiết từng
record, cho phép thêm, xóa, sửa dữ liệu DetailsView có thể kết hợp với GridView tạo
nên một giải pháp cập nhật và hiển thị dữ liệu hoàn hảo trên trang web
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu –- DetailsView
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 226/316
226
28. Ví dụ trong phần GridView ta có xây dựng cột MaHH là một dạng control liên kết đến trangProductDetail.aspx
Bây giờ ta xây dựng trangProductDetail.aspx như sau Tạo trang mới, đặt tên ProductDetail.aspx Bổ sung SqlDataSource lấy dữ liệu từ table
HangHoa với mệnh đề WHERE làMaHH=Request.QueryString(“ProductID”)
Bổ sung control DetailsView, chỉ định DataSource
VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu –- DetailsView
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 227/316
227
VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu –- DetailsView
Chọn Edit Fields để điều chỉnh phần hiển thị tên field
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 228/316
228
Chọn Edit Fields để điều chỉnh phần hiển thị tên field Chọn Auto Format để chỉ định dạng
trình bày dữ liệu Chọn Edit Template để thay đổi các control
TemplateField (thao tác thực hiện tương tự GridView)
VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu –- DetailsView
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 229/316
229
Ta có thể chọn định dạng như hình DetailsView cho phép
thêm mới dữ liệu, dođó khi thay đổi control trong EditTemplate, ta nên thay
đổi cả trong chế độ Insert
VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu –- DetailsView
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 230/316
230
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu - FormView
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 231/316
231
29. Control FormView về mặt trình bàydữ liệu và các chức năng đều tương tự như DetailsView
30. Khi kết hợp GridView với: DetailsView: thường dùng để hiển thị
thông tin chi tiết về record được chọn trong GridView cũng như thêm mới các
record FormView: hiển thị thông tin dạng
Master/Detail
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu - DataList
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 232/316
232
31. Tương tự GridView, DataList cũng trìnhbày dữ liệu theo dạng danh sách liệt kêvới nhiều định dạng khác nhau phongphú hơn
32. DataList chỉ được dùng để hiển thị dữ liệu, không cho phép phân trang Để phân trang ta cần thực hiện thủ công
thông qua các control LinkButton
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – DataList (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 233/316
233
Tiếp tục ví dụ trước: Thêm mới trang DMHHList.aspx Bổ sung SqlDataSource lấy dữ liệu từ
table HangHoa Bổ sung DataList vào trang và chỉ định
DataSource là SqlDataSource1 F5 để thực thi trang web Kết quả như hình sau
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – DataList (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 234/316
234
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – DataList (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 235/316
235
Chọn Edit Template từ SmartTag của DataList1 Trong ItemTemplate,
dùng control Table để gióng thẳng hàng cáccontrol
Định lại chữ tiếng việt
và các định dạng hiển thị cần thiết khác
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – DataList (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 236/316
236
Chọn Auto Format theo ý thích Điều chỉnh các thuộc tính như
hình bên
Bổ sung control Label, đặt tên làlblTotalRec Chận sự kiện Page_Load, viết
lệnh như sau:
lblTotalRec.Text = “Tổng số: “ + DataList1.Items.Count.ToString()
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – DataList (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 237/316
237
VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu - UserControl
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 238/316
238
1. User Control thực chất là một trangASP.NET nhưng chuyên dùng để nhúngvào các trang web khác
2. Trang User control có phần mở rộng làascx3. Để sử dụng user control trong trang web,
ta dùng chỉ dẫn Register<%@ Register TagPrefix=“myascx”
TagName=“MyUserControl” Src=“uc 1.ascx” %>
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – UserControl (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 239/316
239
5. Sau khi đã đăng ký, ta khai báo sử dụng control này như sau:<myascx:MyUserControl runat=“server”/>
6. Tuy nhiên, trong chế độ Design của trangweb, các thẻ này sẽ được phát sinh tự động khi ta nắm kéo thả trang ascx vàotrang web
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – UserControl (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 240/316
240
7. Thêm mới user control bằng cách chọn Add New Item, LEFT.ascx
8. Bổ sung SqlDataSource lấy dữ liệu từ table LoaiHH
9. Bổ sung ListBox lấy dữ liệu từ SqlDataSource1, đặt AutoPostBack=True
10. Lưu user control
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – UserControl (tt)
11.
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 241/316
241
Bổ sung trang ASP.NET mới, tênUseUC.aspx12. Bổ sung SqlDataSource lấy dữ liệu từ
table HangHoa với MaLoai lấy giá trị từ
control HiddenField13. Bổ sung HiddenField tên hid14. Bổ sung GridView lấy dữ liệu từ
SqlDataSource115. Kéo file LEFT.ascx vào trang web
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – UserControl (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 242/316
242
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – UserControl (tt)
16.
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 243/316
243
Chận sự kiện Page_Load và viết lệnh:Dim lst As ListBox = LEFT1.FindControl("ListBox1")
hid.Value = lst.SelectedValue.ToString()
17. F5 để thực thi trang web, click chọn loại hàng bên trái để xem danh sách hànghóa thuộc loại này được trình bày trongGridView
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – UserControl (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 244/316
244
VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu - MasterPage
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 245/316
245
18. Hữu ích trong việc thống nhất dạng thức trình bày của các trang web trongwebsite
19.
Thực chất là 1 trang ASP.NET có phần mở rộng là .master20. Trang master có chỉ dẫn ở đầu file giao
diện là: <%@ Master ... %>
VI.- ASP.NET & ADO.NET
5.- Các control trình bày dữ liệu – MasterPage (tt)
21. Thêm trang master mới vào project
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 246/316
246
VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – MasterPage (tt)
22. Bổ sung control Table vào trang23.
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 247/316
247
Kéo user control LEFT vào cell bên trái
VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – MasterPage (tt)
ỗ ề ấ
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 248/316
248
24. Mỗi trang master đều có ít nhất 1ContentPlaceHolder dùng làm nơi giữ chỗ cho các trang ASP.NET có chỉ định dùng trang master
25. Tuy nhiên ta có thể bổ sung thêmContentPlaceHolder
26. Tạo trang mới LoaiHH.aspx có chỉ định sử dụng trang master như sau
VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – MasterPage (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 249/316
249
Sau khichọn
Add,hộpthoại yêucầu chọn
trang mastersẽ hiện ra
VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – MasterPage (tt)
27. Thiết kế trang LoaiHH tương tự trang UseUC đã thực hiện
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 250/316
250
VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu - UserControl
28. Chận sự kiện Page_Load và viết lệnh:
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 251/316
251
Dim lst As ListBox = Page.Master.FindControl(“LEFT 1”).FindControl("ListBox1")
hid.Value = lst.SelectedValue.ToString()
29. F5 để thực thi trang web, click chọn loại hàng bên trái để xem danh sách hàng hóathuộc loại này được trình bày trong
GridView
VI.- ASP.NET & ADO.NET5.- Các control trình bày dữ liệu – UserControl (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 252/316
252
NỘI DUNG (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 253/316
253
I. Web tĩnh và động II. Giới thiệu về ASP.NETIII. IIS (Internet Information Services)
IV. Các control trong ASP.NETV. Các đối tượng trong ASP.NETVI. ASP.NET & ADO.NETVII. Xây dựng ứng dụng bán sách qua mạng
VII. Xây dựng ứng dụng bán sách quamạng
1. Tạo WebSite mới tên BookOnline
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 254/316
2. Trong thư mục chứa WebSite, tạo thư mục Images/Books và chép cáchình ảnh vào đây
3. Trong cửa sổ Solution Explorer, thêmFolder mới tên Images, thêm tiếp FolderBooks là con của Images
4. Click phải Folder Books, chọn AddExisting Items rồi chọn các file hình ảnh
254
VII. Xây dựng ứng dụng bán sáchqua mạng
1
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 255/316
1. Tạo user control tìm sách2. Tạo trang Master3. Thiết kế và xây dựng phần khách hàng
Sơ đồ website phần khách hàng Mô hình hoạt động và giao tiếp Thiết kế xử lý
Xây dựng các webform4. Thiết kế và xây dựng phần quản trị
255
VII. Xây dựng ứng dụng bán sách qua mạng
1. Tạo user control tìm sách
1. Add New Item, chọn Web User Control
đặ B kS h
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 256/316
và đặt tên là ucBookSearch.ascx
2. Thiết kế giao diện cho control bao gồm 2Label, 1 TextBox và 1 Button như sau:
3. Viết lệnh cho button thực hiện chuyển sang trang khác như sau:
Response.Redirect("BookSearch.aspx?title=" & title.Text)256
VII. Xây dựng ứng dụng bán sách qua mạng 1. Tạo trang master
1 h à đặt
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 257/316
1. Add New Item, chọn Master Page và đặt tên là BookOnline.master
2. Đặt 1 Table gồm 2 dòng, 2 cột vào trang
3. Đặt hình ảnh LOGO vào cột 1 dòng 14. Từ Solution Explorer, kéo file
ucBookSearch.aspx vào cột 1 dòng 2
5. Từ ToolBox, kéo Menu control vào cột 2dòng 1 và tạo hệ thống trình đơn như sau 257
VII. Xây dựng ứng dụng bán sách qua mạng 1. Tạo trang master
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 258/316
Default.aspx
SignIn.aspxShoppingCart.aspxShoppingCart.aspx
HistorialShoppingCart.aspx
Login.aspxAdminPage.aspx
258
VII. Xây dựng ứng dụng bán sách qua mạng 1. Tạo trang master
1 Gi diệ t t h
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 259/316
1. Giao diện trang master tương tự như sau
259
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
1 S đồ b i hầ khá h hà
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 260/316
1. Sơ đồ website phần khách hàng Sơ đồ mô tả số lượng trang và sự liên kết giữa các trang
2. Mô hình hoạt động và giao tiếp Cách thức hoạt động của các trang và giữa
các trang với nhau
3. Thiết kế dữ liệu và xử lý4. Xây dựng các webform
260
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
A/. Sơ đồ WebSite HomePage HistorialShopping
CartPage.aspx
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 261/316
261
LogInPage
SearchPage CategoryPage AboutPage
ProductPage
SignInPage ShoppingCartPage
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
B/. Mô hình hoạt động và giao tiếp
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 262/316
262
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
B/. Mô hình hoạt động và giao tiếp (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 263/316
263
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
B/. Mô hình hoạt động và giao tiếp (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 264/316
264
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
C/. Thiết kế dữ liệu và xử lý
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 265/316
265
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
C/. Thiết kế dữ liệu và xử lý (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 266/316
266
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
C/. Thiết kế dữ liệu và xử lý (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 267/316
267
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
C/. Thiết kế dữ liệu và xử lý (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 268/316
268
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
C/. Thiết kế dữ liệu và xử lý (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 269/316
269
1.
Tạo thành iên mới
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
C/. Thiết kế dữ liệu và xử lý (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 270/316
Tạo thành viên mới
270
create procedure sp_addGuestasbegin
insert into ThanhVien (TenDN, MatKhauDN,Quyen, Ho, Ten, email, DC, DT, GhiChu, MaThe,SoThe, DaDK)
values (null, null, null, null, null, null, null, null,
null, null, null, 0)SELECT @@IDENTITY
end
1.
Xóa thành viên
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
C/. Thiết kế dữ liệu và xử lý (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 271/316
Xóa thành viên
271
create procedure sp_delGuest@matv int
as
begindelete from thanhvien where matv=@matv
end
1.
Bổ sung thông tin khi thành viên SignIn
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
C/. Thiết kế dữ liệu và xử lý (tt)
d i G
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 272/316
Bổ sung thông tin khi thành viên SignIn
272
create procedure sp_registerGuest@matv int, @tendn nvarchar(50),@mkdn nvarchar(50), @ho nvarchar(50),@ten nvarchar(50), @email nvarchar(50),
@dc nvarchar(50), @dt nvarchar(50)asbegin
update thanhvienset TenDN=@tendn, MatKhauDN=@mkdn, Ho=@ho,
Ten=@ten, email=@email, DC=@dc, DT=@dt, DaDK=1where MaTV=@matv
end
1.
Tạo giỏ hàng cho 1 thành viênd ddC
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
C/. Thiết kế dữ liệu và xử lý (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 273/316
Tạo giỏ hàng cho 1 thành viêncreate procedure sp_addCart@matv int
asbegin
insert into GioHang (MaTV, NgayTao, DaDatHang)
values (@matv, getdate(), 0)
select @@identityend
273
1.
Thêm sách vàogiỏ
hàng
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
C/. Thiết kế dữ liệu và xử lý (tt)
d ddT C
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 274/316
Thêm sách vào hàng
274
create procedure sp_addToCart@magh int,@masach int
ASBEGINdeclare @gia as intselect @gia=Gia from Sach where MaSach=@masach
insert into CTGioHang (MaGH, MaSach, GhiChu, SL,Gia)values (@magh, @masach, null, 1, @gia)
END
1.
Xóa sáchkhỏi giỏ
hàng
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
C/. Thiết kế dữ liệu và xử lý (tt)
d d lC I
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 275/316
Xóa sách hàng
275
create procedure sp_delCartItem@magh int,@masach int
asbegin
delete from ctgiohangwhere magh=@magh and masach=@masach
end
1. Cập nhật sách trong giỏ hàng
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
C/. Thiết kế dữ liệu và xử lý (tt)
create procedure sp updCartItem
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 276/316
276
create procedure sp_updCartItem@magh int,@masach int,
@ghichu nvarchar(20),@sl intasbegin
update ctgiohangset ghichu=@ghichu, sl=@slwhere magh=@magh and masach=@masach
end
1. Tính tổng tiền của giỏ hàng
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
C/. Thiết kế dữ liệu và xử lý (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 277/316
277
create procedure sp_TongTienGH@magh int
as
beginselect sum(SL*Gia)
from ctgiohangwhere MaGH=@magh
end
1. Do mỗi thành viên khi chưa login đều được
tạo 1 mã thành viên mới nên sau khi login
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
C/. Thiết kế dữ liệu và xử lý (tt)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 278/316
tạo 1 mã thành viên mới, nên sau khi loginmã thành viên mã thành viên trong giỏ hànghiện tại phải được cập nhật lại
278
create procedure sp_updCartIDOfUser@magh int,@matv int
asbegin
update giohangset matv=@matvwhere magh=@magh
end
1. Tạo đơn đặt hàng mới
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
C/. Thiết kế dữ liệu và xử lý (tt)
create procedure sp addOrder
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 279/316
279
create procedure sp_addOrder@magh int,@matv int
asbegin
insert into DDH (MaGH, MaTV, HTTT, HTVC)values (@magh, @matv, null, null)
select @@identityend
1. Thêm các sách từ giỏ hàng vào đơn ĐH
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
C/. Thiết kế dữ liệu và xử lý (tt)
create procedure sp addToOrder@ ddh i t
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 280/316
280
create procedure sp_addToOrder@maddh int,@magh int
asbegin
insert into ctddh (maddh, masach, ghichu, sl, gia)select @maddh, masach, ghichu, sl, gia
from ctgiohangwhere magh=@magh
update giohangset DaDatHang=1where magh=@magh
end
1. Kiểm tra xem user đã đăng ký chưa?
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
C/. Thiết kế dữ liệu và xử lý (tt)
create procedure sp checkRegistered
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 281/316
281
create procedure sp_checkRegistered@matv int
asbegin
select DaDKfrom ThanhVienwhere MaTV=@matv
end
1. Kiểm tra xem tên đăng nhập đã tồn tại?
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
C/. Thiết kế dữ liệu và xử lý (tt)
create procedure sp checkLoginName
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 282/316
282
create procedure sp_checkLoginName@tendn nvarchar(50)
asbegin
select count(*)from thanhvienwhere TenDN=@tendn
end
1. Kiểm tra thông tin đăng nhập hợp lệ?
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
C/. Thiết kế dữ liệu và xử lý (tt)
create procedure sp checkUserLogging
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 283/316
283
create procedure sp_checkUserLogging@tendn nvarchar(50),@mkdn nvarchar(50)
as
begin select count(*)from thanhvienwhere tendn=@tendn and matkhaudn=@mkdn
end
1. Lấy về mã thành viên của user đăng nhập
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
C/. Thiết kế dữ liệu và xử lý (tt)
create procedure sp getUserID
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 284/316
284
create procedure sp_getUserID@tendn nvarchar(50),@mkdn nvarchar(50)
asbegin
select MaTVfrom thanhvienwhere tendn=@tendn and matkhaudn=@mkdn
end
1. Default.aspx Thêm webform
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 285/316
Thêm webformmới vào project,đặt tên và chọn
Select masterpage
Nhập nội dung giới thiệu
Bổ sung control BulletedList, đặt tên là optCat. Click chọnChoose DataSource và thực hiện tiếp cácbước trong slide sau. 285
1. Default.aspx (tt) Trong hộp thoại xuất hiện chọn <New Data
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 286/316
Trong hộp thoại xuất hiện, chọn <New DataSource…>
Trong hộp thoại xuất hiện kế tiếp, chọn
Database, chú ý tên của DataSource phíadưới. OK
Trong hộp thoại xuất hiện kế tiếp, chọn New
Connection Trong hộp thoại xuất hiện kế tiếp, nhập tên
server, chọn loại kết nối thích hợp và chọn CSDL. OK
286
1. Default.aspx (tt)
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần khách hàng
D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 287/316
287
1. Default.aspx (tt)
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng
D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 288/316
288
1. Default.aspx (tt)
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng
D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 289/316
289
1. Default.aspx (tt) Double click vào button Xem thể loại này và
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng
D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 290/316
Double click vào button Xem thể loại này vàviết lệnh như sau
Nhấn F5 để xem thử kết quả trình bày trongtrang này.
Slide sau trình bày các bước thực hiện trangCategoryDetail.aspx290
Response.Redirect("CategoryDetail.aspx?catID=" &
optCat.SelectedValue)
2. CategoryDetail.aspxThêm webform mới tên là CategoryDetail aspx
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng
D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 291/316
Thêm webform mới tên là CategoryDetail.aspx(chọn Select master page)
291
2. CategoryDetail.aspx (tt) Bổ sung GridView vào webform và đặt tên là
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng
D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 292/316
Bổ sung GridView vào webform và đặt tên làdgrTheLoaiSach
Chọn Choose Data Source / <New Data
Source…> Trong hộp thoại xuất hiện, chọn chuỗi kết nối
đã tạo trước đó (bookstoreConnectionString)
Chọn dữ liệu từ Specify a custom SQL or stored procedure . Next
292
2. CategoryDetail.aspx (tt) Dùng QueryBuilder hoặc viết lệnh SQL lấy
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng
D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 293/316
Dùng QueryBuilder ặ ệ SQL y các thông tin sau: MaSach, TenSach,TenTG, Gia, Hinh, MaTL, TenTL và điều
kiện lọc các mẫu tin là MaTL=@matl. Next Chỉ định giá trị cho tham số:
293
2. CategoryDetail.aspx (tt)
Chọn Edit Columns từ SmartTag của Grid
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng
D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 294/316
ọ Edit Columns SmartTag Grid
294
2. CategoryDetail.aspx (tt) Chận sự kiện Page_Load và điền thông tin cho
lblTh L i h
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng
D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 295/316
g _ glblTheLoai như sau: lblTheLoai.Text = GridView1.Rows(0).Cells(2).Text
295
3. ProductDetail.aspx Tạo webform mới đặt tên là
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng
D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 296/316
ạ ặProductDetail.aspx
Thêm vào trang control FormView, Button.
FormView có Data Source lấy các thông tinMaSach, TenSach, TenTG, TenTL, Gia, Hinh,GhiChu với MaSach=@masach(=QueryString(“ProdID”))
Từ SmartTag của FormView, chọn EditTemplate
296
3. ProductDetail.aspx (tt) Thêm Table vào ItemTemplate và kéo thả các
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng
D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 297/316
pcontrol trong FormView theo vị trí như hình:
297
Xóa Field HinhThêm vào 1 Image control
Từ SmartTag, chọn Edit DataBindings Chọn như trong hình
3. ProductDetail.aspx (tt) Chận sự kiện click trên Thêm vào giỏ hàng.
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng
D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 298/316
ậ ự ệ g g
298
Dim connStr As String = "server=(local);Initial Catalog=bookstore;Integrated Security=True"Dim dbConn As New SqlConnection(connStr)Dim dbCmd As New SqlCommand()Dim userID As Long
dbConn.Open()dbCmd.Connection = dbConn
If Session.IsNewSession() ThendbCmd.CommandText = "sp_addGuest"dbCmd.CommandType = Data.CommandType.StoredProcedureuserID = dbCmd.ExecuteScalar()
Session("userID") = userID
dbCmd.CommandText = "sp_addCart"dbCmd.CommandType = Data.CommandType.StoredProceduredbCmd.Parameters.Add("@MaTV", Data.SqlDbType.Int).Value = userIDSession("cartID") = dbCmd.ExecuteScalar()
3. ProductDetail.aspx (tt) Chận sự kiện click trên Thêm vào giỏ hàng (tt)
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng
D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 299/316
ậ ự ệ g g ( )
299
ElseuserID = Session("userID")If (Session("cartID") Is Nothing) Then
dbCmd.CommandText = "sp_addCart"dbCmd.CommandType = Data.CommandType.StoredProcedure
dbCmd.Parameters.Add("@MaTV", Data.SqlDbType.Int).Value = userIDSession("cartID") = dbCmd.ExecuteScalar()End If
End IfdbCmd = New SqlCommand()dbCmd.Connection = dbConndbCmd.CommandText = "sp_addToCart"dbCmd.CommandType = Data.CommandType.StoredProceduredbCmd.Parameters.Add("@MaGH", Data.SqlDbType.Int).Value = Session("cartID")dbCmd.Parameters.Add("@MaSach", Data.SqlDbType.Int).Value = CInt(Request.QueryString("ProdID"))dbCmd.ExecuteNonQuery()
Response.Redirect("ShoppingCart.aspx")
4. ShoppingCart.aspx Tạo webform mới và thêm control GridView
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng
D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 300/316
ạlấy các thông tin: MaGH, MaSach, GhiChu,SL, CTGioHang.Gia, TenSach với
MaGH=@magh (=Session(“cartID”)) Tạo khả năng phân trang,
chỉnh sửa, xóa cho Grid Click chọn Edit Columns
và định dạng lại các cột như slide sau
300
4. ShoppingCart.aspx (tt)
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng
D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 301/316
301
4. ShoppingCart.aspx (tt)
Chận sự kiện Page_Load:
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng
D/. Xây dựng các webform
Dim dbConn As New SqlConnection(connStr)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 302/316
g _
302
Dim dbConn As New SqlConnection(connStr)Dim dbCmd As New SqlCommand()
dbConn.Open()dbCmd.Connection = dbConndbCmd.CommandText = "sp_TongTienGH“ dbCmd.CommandType =Data.CommandType.StoredProcedure
dbCmd.Parameters.Add("@magh", Data.SqlDbType.Int).Value= Session(“cartID”)
lblTongTien.Text = dbCmd.ExecuteScalar().ToString()
4. ShoppingCart.aspx (tt)
Chận sự kiện RowDeleting của GridView
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng
D/. Xây dựng các webform
Dim dbConn As New SqlConnection(connStr)
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 303/316
g
303
Dim dbConn As New SqlConnection(connStr)Dim dbCmd As New SqlCommand()
dbConn.Open()
dbCmd.Connection = dbConndbCmd.CommandText = "sp_delCartItem“ dbCmd.CommandType = Data.CommandType.StoredProceduredbCmd.Parameters.Add("@magh", Data.SqlDbType.Int).Value = cartIDdbCmd.Parameters.Add("@masach", Data.SqlDbType.Int).Value =
e.Keys.Item(1)dbCmd.ExecuteNonQuery()e.Cancel = TrueResponse.Redirect("shoppingcart.aspx")
4. ShoppingCart.aspx (tt)
Chận sự kiện RowUpdating của GridView
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng
D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 304/316
p g
304
Dim dbConn As New SqlConnection(connStr)Dim dbCmd As New SqlCommand()Dim gc As String = e.NewValues.Item(0)Dim sl As String = e.NewValues.Item(1)If (gc Is Nothing) Then gc = "“ If (sl Is Nothing) Then sl = "1“ If (Convert.ToInt32(sl) < 1) Then sl = "1"
dbConn.Open()dbCmd.Connection = dbConn
4. ShoppingCart.aspx (tt)
Chận sự kiện RowUpdating của GridView (tt)
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng
D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 305/316
p g ( )
305
dbCmd.CommandText = "sp_updCartItem“ dbCmd.CommandType = Data.CommandType.StoredProceduredbCmd.Parameters.Add("@magh", Data.SqlDbType.Int).Value = cartID
dbCmd.Parameters.Add("@masach", Data.SqlDbType.Int).Value =e.Keys.Item(1).ToString()
dbCmd.Parameters.Add("@ghichu", Data.SqlDbType.NVarChar).Value = gcdbCmd.Parameters.Add("@sl", Data.SqlDbType.Int).Value =
Convert.ToInt32(sl)
dbCmd.ExecuteNonQuery()e.Cancel = TrueResponse.Redirect("shoppingcart.aspx")
4. ShoppingCart.aspx (tt)
Thêm LinkButton Đặt Hàng và chận sự kiện click của nó
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng
D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 306/316
click của nó
306
4. ShoppingCart.aspx (tt) Thêm LinkButton Đặt Hàng và chận sự kiện
li k ủ ó (tt)
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng
D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 307/316
click của nó (tt)
307
4. ShoppingCart.aspx (tt) Thêm LinkButton Đặt Hàng và chận sự kiện
li k ủ ó (tt)
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng
D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 308/316
click của nó (tt)
308
4. ShoppingCart.aspx (tt)
Thêm LinkButton Tiếp tục chọn sách dùngđiều hướng đến trang Default aspx
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng
D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 309/316
điều hướng đến trang Default.aspx
309
4. LogIn.aspx Tạo WebForm mới và thêm control Login.
Chậ kiệ A th ti t
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 310/316
Chận sự kiện Authenticate:
310
4. LogIn.aspx Chận sự kiện Authenticate (tt)
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 311/316
311
4. LogIn.aspx Chận sự kiện Authenticate (tt)
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 312/316
312
5. BookSearch.aspx Tạo WebForm mới và thêm control DataList
lấy các thông tin: MaSach TenSach TenTG
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 313/316
lấy các thông tin: MaSach, TenSach, TenTG,Gia, Hinh, TenTL với TenSach LIKE„%@title%‟ (=QueryString(“title”))
Chọn Edit Template cho DataList và điều chỉnh các control như sau:
313
Xóa Field HinhThêm vào 1 Image controlTừ SmartTag, chọn Edit DataBindings Chọn như trong hình
6. HistoricalShoppingCart.aspx Tạo WebForm mới và thêm control GridView
lấy các thông tin: MaGH NgayTao với
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 314/316
lấy các thông tin: MaGH, NgayTao với DaDatHang=1 và MaTV=@matv(=Session(“userID”))
Thêm control GridView khác lấy các thông tin:MaSach, TenSach, TenTG, SL,CTGioHang.Gia với MaGH=@magh (=Control
GridView1.SelectedValue)
314
6. HistoricalShoppingCart.aspx (tt) Thêm 2 control GridView khác lấy các thông tin về
các giỏ hàng chưa được đặt hàng của thành viên hiện tại (học viên tự làm)
VII. Xây dựng ứng dụng bán sách qua mạng
1. Phần khách hàng D/. Xây dựng các webform
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 315/316
tại (học viên tự làm)
315
VII. Xây dựng ứng dụng bán sách qua mạng 1. Phần quản trị
5/11/2018 ASP1-5B1-5D.NET_04Mar08 - slidepdf.com
http://slidepdf.com/reader/full/asp1-5b1-5dnet04mar08 316/316