Lập trình web với asp.net

Tài liệu Lập trình web với asp.net: CÁC KNLTCS PHẦN 1: GIỚI THIỆU 2 2 Ngành lập trình - CSDL Mục tiêu • Xây dựng các trang web động trên môi trường ASP.NET • Xây dựng hoàn chỉnh và triển khai ứng dụng web trên môi trường ASP.NET 3 3 Ngành lập trình - CSDL Nội dung 1. Tổng quan về ASP.Net 2. Server Controls 3. Điều khiển Kiểm tra 4. Các điều khiển dữ liệu 5. User Controls 6. Quản lý ứng dụng Web 7. Web Services 8. Xây dựng hoàn chỉnh UD Web 9. Bảo mật website 10. Triển khai ứng dụng Web 11. Giới thiệu và sử dụng Ajax 4 4 Ngành lập trình - CSDL HẾT 2 2 Ngành lập trình - CSDL Mục tiêu • Tìm hiểu môi trường phát triển ứng dụng web với Visual Studio.Net 2005 • Tạo và tổ chức một ứng dụng web đơn giản 3 3 Ngành lập trình - CSDL Nội dung 1. Tổng quan về lập trình ứng dụng Web 2. Giới thiệu về ASP.Net 3. Tạo ứng dụng web đầu tiên 4. Tổ chức lưu trữ ứng dụng web 5. Làm việc với tập tin cấu hình 4 4 Ngành lập trình - CSDL Tổng quan về lập trình ứng dụng Web • Quá trì...

pdf386 trang | Chia sẻ: Khủng Long | Lượt xem: 1301 | Lượt tải: 2download
Bạn đang xem trước 20 trang mẫu tài liệu Lập trình web với asp.net, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
CÁC KNLTCS PHẦN 1: GIỚI THIỆU 2 2 Ngành lập trình - CSDL Mục tiêu • Xây dựng các trang web động trên môi trường ASP.NET • Xây dựng hoàn chỉnh và triển khai ứng dụng web trên môi trường ASP.NET 3 3 Ngành lập trình - CSDL Nội dung 1. Tổng quan về ASP.Net 2. Server Controls 3. Điều khiển Kiểm tra 4. Các điều khiển dữ liệu 5. User Controls 6. Quản lý ứng dụng Web 7. Web Services 8. Xây dựng hoàn chỉnh UD Web 9. Bảo mật website 10. Triển khai ứng dụng Web 11. Giới thiệu và sử dụng Ajax 4 4 Ngành lập trình - CSDL HẾT 2 2 Ngành lập trình - CSDL Mục tiêu • Tìm hiểu môi trường phát triển ứng dụng web với Visual Studio.Net 2005 • Tạo và tổ chức một ứng dụng web đơn giản 3 3 Ngành lập trình - CSDL Nội dung 1. Tổng quan về lập trình ứng dụng Web 2. Giới thiệu về ASP.Net 3. Tạo ứng dụng web đầu tiên 4. Tổ chức lưu trữ ứng dụng web 5. Làm việc với tập tin cấu hình 4 4 Ngành lập trình - CSDL Tổng quan về lập trình ứng dụng Web • Quá trình Request - Response • Web Server – Web Browser – HTTP • Mô hình ứng dụng    5 5 Ngành lập trình - CSDL • Quá trình Request – Response Bài 1: Tổng quan về ASP.NET Tổng quan về lập trình ứng dụng Web Web Browser Web Server Http Request Http Response Internet 6 6 Ngành lập trình - CSDL • Web Server – Web Browser – HTTP − Web Server nhận và điều phối các yêu cầu từ Web Browser và gởi kết quả − Web Browser thể hiện dữ liệu, tập hợp dữ liệu của người dùng và gởi đến Web Server − HTTP dùng để trao đổi thông tin giữa Web Browser với Web Server Bài 1: Tổng quan về ASP.NET Tổng quan về lập trình ứng dụng Web 7 7 Ngành lập trình - CSDL • Web Server – Web Browser – HTTP Bài 1: Tổng quan về ASP.NET Tổng quan về lập trình ứng dụng Web Web Browser Web Server Client gởi yêu cầu 1. Xử lý yêu cầu 2. Thi hành code 3. Lưu trữ dữ liệu 4. Gởi kết quả Thể hiện lên trang web Default.aspx Server hồi đáp 8 8 Ngành lập trình - CSDL • Mô hình ứng dụng Bài 1: Tổng quan về ASP.NET Tổng quan về lập trình ứng dụng Web 9 9 Ngành lập trình - CSDL Nội dung 1. Tổng quan về lập trình ứng dụng Web 2. Giới thiệu về ASP.Net 3. Tạo ứng dụng web đầu tiên 4. Tổ chức lưu trữ ứng dụng web 5. Làm việc với tập tin cấu hình 10 10 Ngành lập trình - CSDL Giới thiệu về ASP.NET • Tìm hiểu về ASP.Net • Một số các đặc điểm của ASP.NET • Quá trình xử lý trang ASPX    11 11 Ngành lập trình - CSDL • Tìm hiểu về ASP.Net − ASP.NET trong .Net Framework Bài 1: Tổng quan về ASP.NET Giới thiệu về ASP.Net Operating System Common Language Runtime Base Class Library ADO .NET and XML ASP .NET Web Forms - Web Services Mobile Internet Toolkit Windows Forms Common Language Specification VB C++ C# J# 12 12 Ngành lập trình - CSDL • Tìm hiểu về ASP.Net − Hệ thống namespace Bài 1: Tổng quan về ASP.NET Giới thiệu về ASP.Net System System.Data System.Xml System.Web Globalization Diagnostics Configuration Collections Resources Reflection Net IO Threading Text ServiceProcess Security Common OleDb SQLTypes SqlClient XPath XSLT Runtime InteropServices Remoting Serialization Serialization Configuration SessionState Caching Security Services Description Discovery Protocols UI HtmlControls WebControls System.Drawing Imaging Drawing2D Text Printing System.Windows.Forms Design ComponentModel 13 13 Ngành lập trình - CSDL • Tìm hiểu về ASP.Net − ASP.Net là kỹ thuật lập trình và phát triển ƯD web ở phía Server trên môi trường Visual Studio .Net Bài 1: Tổng quan về ASP.NET Giới thiệu về ASP.Net 14 14 Ngành lập trình - CSDL • Một số đặc điểm về ASP.Net − Trang Asp.Net được biên dịch trước, thành tập tin DLL mà Server có thể thi hành − Tự động phát sinh mã HTML cho các Server control tương ứng với từng loại Browser − Hỗ trợ các ngôn ngữ khác nhau trong cùng một ứng dụng − Bài 1: Tổng quan về ASP.NET Giới thiệu về ASP.Net 15 15 Ngành lập trình - CSDL • Quá trình xử lý trang aspx Bài 1: Tổng quan về ASP.NET Giới thiệu về ASP.Net Trang dạng .DLL Khởi tạo, xử lý và Render Biên dịch ASPX File Yêu cầu ASPX Engine Phân tích cú pháp Hồi đáp Yêu cầu Khởi tạo Hồi đáp Code- behind class Generated Page Class Phát sinh 16 16 Ngành lập trình - CSDL Nội dung 1. Tổng quan về lập trình ứng dụng Web 2. Giới thiệu về ASP.Net 3. Tạo ứng dụng web đầu tiên 4. Tổ chức lưu trữ ứng dụng web 5. Làm việc với tập tin cấu hình 17 17 Ngành lập trình - CSDL Tạo ứng dụng web đầu tiên • Khởi động MS Visual Studio .Net • Tạo mới một ứng dụng web • Làm quen với các thành phần giao diện    18 18 Ngành lập trình - CSDL • Khởi động MS Visual Studio .Net Bài 1: Tổng quan về ASP.NET Tạo ứng dụng web đầu tiên 19 19 Ngành lập trình - CSDL • Tạo mới một ứng dụng − Tạo một ứng dụng nhỏ với một câu chào − Các kiểu Web site (Web Site Types): • File System: không cần cài đặt IIS, VS 2005 sẽ cung cấp web server riêng khi ta thi hành ứng dụng • Local HTTP: phải có IIS và khai báo URL đã được ánh xạ • FTP: sử dụng giao thức truyền file để quản lý các tập tin trong web site Bài 1: Tổng quan về ASP.NET Tạo ứng dụng web đầu tiên 20 20 Ngành lập trình - CSDL • Tạo mới một ứng dụng − Lưu trang web với font Unicode, trang web có phần mở rộng: aspx (file giao diện) và aspx.cs (file code-behind) − Xác định trang khởi động − Thi hành ứng dụng Bài 1: Tổng quan về ASP.NET Tạo ứng dụng web đầu tiên 21 21 Ngành lập trình - CSDL • Làm quen với các thành phần giao diện − Minh họa trên môi trường VS.Net 2005 Bài 1: Tổng quan về ASP.NET Tạo ứng dụng web đầu tiên 22 22 Ngành lập trình - CSDL Nội dung 1. Tổng quan về lập trình ứng dụng Web 2. Giới thiệu về ASP.Net 3. Tạo ứng dụng web đầu tiên 4. Tổ chức lưu trữ ứng dụng web 5. Làm việc với tập tin cấu hình 23 23 Ngành lập trình - CSDL Tổ chức lưu trữ ứng dụng web • Giới thiệu các thư mục do ASP.Net cung cấp − App_Data − App_Code −  24 24 Ngành lập trình - CSDL • Tổng quát − ASP.Net cung cấp một số tên tập tin và thư mục dùng để phục vụ việc tổ chức lưu trữ một ứng dụng, trong đó: • Default page: tự động thi hành khi người dùng nhập tên miền • Application folders: dùng để lưu trữ các tập tin có phần mở rộng tương ứng với ý nghĩa của thư mục lưu trữ Bài 1: Tổng quan về ASP.NET Tổ chức lưu trữ ứng dụng 25 25 Ngành lập trình - CSDL • Giới thiệu một số thư mục thường dùng − App_Data: lưu trữ tập tin dữ liệu như .mdb, .mdf, .xml, − App_Code: lưu trữ các tập tin chứa source code, có phần mở rộng .vb, .cs, − App_Themes: lưu trữ các tập tin dùng để tạo giao diện chung theo chủ đề, thường có phần mở rộng .skin, .css hoặc các file hình ảnh Bài 1: Tổng quan về ASP.NET Tổ chức lưu trữ ứng dụng 26 26 Ngành lập trình - CSDL • Thao tác tạo các thư mục − Trên thực đơn: chọn Website  Add ASP.NET Folder  chọn thư mục cần tạo Bài 1: Tổng quan về ASP.NET Tổ chức lưu trữ ứng dụng 27 27 Ngành lập trình - CSDL Nội dung 1. Tổng quan về lập trình ứng dụng Web 2. Giới thiệu về ASP.Net 3. Tạo ứng dụng web đầu tiên 4. Tổ chức lưu trữ ứng dụng web 5. Làm việc với tập tin cấu hình 28 28 Ngành lập trình - CSDL Làm việc với tập tin cấu hình • Tập tin cấu hình – Configuration files • Xử lý tập tin cấu hình • Cập nhật tập tin cấu hình    29 29 Ngành lập trình - CSDL • Tập tin cấu hình – Configuration files − Dùng để khai báo các thông số mặc định cho ứng dụng, có dạng XML − Tập tin cấu hình đầu tiên là Machine.config, được đặt trong thư mục Configuration của máy − Machine.config cấu hình cho tất cả các ứng dụng .NET như Windows, Console, Web Application, Bài 1: Tổng quan về ASP.NET Làm việc với tập tin cấu hình 30 30 Ngành lập trình - CSDL • Tập tin cấu hình – Configuration files − Web.config gốc chứa các khai báo mặc định của Web Server, nằm trong cùng thư mục với Machine.config − Web.config có thể ghi đè lên một số khai báo trong Machine.config − Trong mỗi ứng dụng và các thư mục con của ứng dụng Web có thể có tập tin Web.config riêng Bài 1: Tổng quan về ASP.NET Làm việc với tập tin cấu hình 31 31 Ngành lập trình - CSDL • Xử lý tập tin cấu hình − Khi ứng dụng Web được thi hành, sẽ cache các khai báo theo trình tự như sau: Bài 1: Tổng quan về ASP.NET Làm việc với tập tin cấu hình 32 32 Ngành lập trình - CSDL • Xử lý tập tin cấu hình Bài 1: Tổng quan về ASP.NET Làm việc với tập tin cấu hình Web.config trong t.mục /ManHinh/SanPham Web.config trong t.mục /ManHinh/QuanTri Web.config trong t.mục /ManHinh Web.config trong t.mục /gốc Web.config trong t.mục Configuraton Machine.config trong t.mục Configuraton Subdirectories * Web App * Root Default Web Global machine 33 33 Ngành lập trình - CSDL • Cập nhật tập tin cấu hình − Mở tập tin và cập nhật trực tiếp Hoặc − Dùng Web Site Administrator Tool do VS 2005 cung cấp, thao tác: • Trên thực đơn chọn: Website  ASP.NET Configuation Bài 1: Tổng quan về ASP.NET Làm việc với tập tin cấu hình 34 34 Ngành lập trình - CSDL HẾT Bài 1: Tổng quan về ASP.NET 1 1 Ngành lập trình - CSDL 2 2 Ngành lập trình - CSDL Mục tiêu • Sử dụng thành thạo các điều khiển: − HTML Server Controls − Web Server Controls − Specialized Controls • Các sự kiện cơ bản trên trang .aspx • Làm việc với đối tượng ViewState 3 3 Ngành lập trình - CSDL Nội dung 1. Tổng quan về ASP.Net Server Controls 2. Đối tượng Asp.Net Page 4. Web Server Controls 5. Các điều khiển khác 6. Đối tượng ViewState 3. HTML Server Controls 4 4 Ngành lập trình - CSDL Tổng quan về ASP.NET Server Controls • Giới thiệu các nhóm điểu khiển trên thanh Toolbox • Các kiểu Server Control   5 5 Ngành lập trình - CSDL • Giới thiệu các nhóm điều khiển trên thanh ToolBox Bài 2: Server Controls Tổng quan về ASP.NET Server Controls 6 6 Ngành lập trình - CSDL • Các kiểu Server Controls − HTML Server Controls − Web Server Controls Bài 2: Server Controls Tổng quan về ASP.NET Server Controls 7 7 Ngành lập trình - CSDL • Khi nào sử dụng HTML Server Control − Điều khiển cần phải có đoạn JavaScript kèm theo sự kiện − Có nhiều code JavaScript tham chiếu đến điều khiển đó • Khi nào sử dụng Web Server Control − Không rơi vào các trường hợp trên Bài 2: Server Controls Tổng quan về ASP.NET Server Controls 8 8 Ngành lập trình - CSDL Nội dung 1. Tổng quan về Server Controls 2. Đối tượng Asp.Net Page 4. Web Server Controls 5. Các điều khiển khác 6. Đối tượng ViewState 3. HTML Server Controls 9 9 Ngành lập trình - CSDL ASP.NET Page • Sự kiện • Thuộc tính   10 10 Ngành lập trình - CSDL • Sự kiện − Trình tự các sự kiện xảy ra khi render một trang web (Page Life-Cycle Events) Bài 3: Server Controls ASP.NET Page 11 11 Ngành lập trình - CSDL Bài 3: Server Controls ASP.NET Page Page_PreInit() Page_Init() Page_IntComplete() Page_PreLoad() Page_Load() Page_UnLoad() Page_PreRender() Thuờng dùng: kiểm tra trang có Postback không, tạo Theme động, Master động, điều khiển động Thuờng dùng để đọc hoặc đặt giá trị thuộc tính cho điều khiển Cài đặt các xử lý khởi động ban đầu, thường dùng tạo connection Xảy ra trước khi trang web được render, trả kết quả về cho Client Nếu có PostBack thì phát sinh sự kiện của điều khiển, như Click của Button, Minh họa 12 12 Ngành lập trình - CSDL • Thuộc tính − IsPostBack (True/False): trả về trạng thái của trang web, cho biết được load lần đầu tiên hay không − MaintainScrollPositionOnPostBack (True/False): có giữ nguyên vị trí mà người dùng đang đọc sau khi PostBack không Bài 3: Server Controls ASP.NET Page 13 13 Ngành lập trình - CSDL Nội dung 1. Tổng quan về Server Controls 2. Đối tượng Asp.Net Page 4. Web Server Controls 5. Các điều khiển khác 6. Đối tượng ViewState 3. HTML Server Controls 14 14 Ngành lập trình - CSDL HTML Server Controls • HTML Controls • HTML Server Controls   15 15 Ngành lập trình - CSDL • HTML Controls − Được tạo ra từ tag HTML tĩnh − Thường được sử dụng lập trình ở phía client − Thuộc tên miền System.Web.UI.HtmlControls Bài 2: Server Controls HTML Server Controls Minh họa 16 16 Ngành lập trình - CSDL • HTML Server Controls − Sử dụng HTML Controls trong quá trình lập trình ở phía server, ta thực hiện như sau:  Bổ sung thuộc tính runat=“server” vào tag điều khiển  Hoặc chọn chức năng Run As Server Control từ thực đơn ngữ cảnh − Điểu khiển có thuộc tính runat=“server” gọi là HTML Server Controls Bài 2: Server Controls HTML Server Controls Minh họa 17 17 Ngành lập trình - CSDL Nội dung 1. Tổng quan về Server Controls 2. Đối tượng Asp.Net Page 4. Web Server Controls 5. Các điều khiển khác 6. Đối tượng ViewState 3. HTML Server Controls 18 18 Ngành lập trình - CSDL Web Server Controls • Giới thiệu • Label • HyperLink • TextBox • Image • Button, ImageButton, LinkButton • CheckBox, RadioButton        19 19 Ngành lập trình - CSDL • Giới thiệu − Web Server Controls là các đối tượng của .Net Framework − Được chuyển đổi sang dạng HTML tĩnh lúc thực thi − Thường được sử dụng lập trình ở phía server − Thuộc tên miền System.Web.UI.WebControls − HTML Source lúc thiết kế có dạng: Bài 2: Server Controls Web Server Controls 20 20 Ngành lập trình - CSDL • Label − Dùng để hiển thị thông tin − Thuộc tính Text có thể nhận và hiển thị nội dung với các tag HTML. Bài 2: Server Controls Web Server Controls Minh họa 21 21 Ngành lập trình - CSDL • TextBox − Dùng để nhập và hiển thị dữ liệu − Text: nội dung chứa trong TextBox − TextMode (SingleLine,MultiLine,Password ): định dạng hiển thị của Textbox. − Wrap: có được phép tự động xuống dòng hay không Bài 2: Server Controls Web Server Controls Minh họa 22 22 Ngành lập trình - CSDL • HyperLink − Dùng để tạo ra các liên kết siêu văn bản − ImageURL: hình ảnh hiển thị trên điều khiển (ưu tiên) − Text: chuỗi văn bản hiển thị trên điều khiển. − NavigateUrl: đường dẫn cần liên kết đến − Target(_blank, _self, _parent): dạng cửa sổ hiển thị trang kết quả Bài 2: Server Controls Web Server Controls Minh họa 23 23 Ngành lập trình - CSDL • Image − Dùng để hiển thị hình ảnh − ImageURL: đường dẫn đến tập tin hình ảnh cần hiển thị. − AlternateText: chuỗi văn bản sẽ hiển thị khi đường dẫn của thuộc tính ImageURL không tồn tại. Bài 2: Server Controls Web Server Controls Minh họa 24 24 Ngành lập trình - CSDL • Button, LinkButton, ImageButton − Sẽ PostBack về server khi được chọn − CausesValidation(True/False): có kiểm tra tính hợp lệ trên trang web không − OnClientClick: ngôn ngữ Client-side script sẽ được thi hành ở mức client Bài 2: Server Controls Web Server Controls Minh họa 25 25 Ngành lập trình - CSDL • CheckBox và RadioButton − Checked: cho biết trạng thái của điều khiển có được chọn hay không − TextAlign: qui định vị trí hiển thị của điều khiển so với chuỗi văn bản − GroupName: nhóm các điều khiển thành một nhóm, dành cho RadioButton Bài 2: Server Controls Web Server Controls Minh họa 26 26 Ngành lập trình - CSDL Nội dung 1. Tổng quan về Server Controls 2. Đối tượng Asp.Net Page 4. Web Server Controls 5. Các điều khiển khác 6. Đối tượng ViewState 3. HTML Server Controls 27 27 Ngành lập trình - CSDL Các điều khiển khác • Panel và PlaceHolder • Table • Calendar • FileUpLoad • View, MultiView      28 28 Ngành lập trình - CSDL • Panel, PlaceHolder − Được sử dụng để chứa các điều khiển khác − Điều khiển Panel cho phép đặt những điều khiển khác vào bên trong lúc thiết kế còn PlaceHolder thì không − Xử lý thêm điều khiển khác vào lúc thực thi: TextBox txtSo_A = new TextBox(); .Controls.Add(txtSo_A); Bài 2: Server Controls Các điều khiển khác Minh họa 29 29 Ngành lập trình - CSDL • Table − Dùng để thao tác, thể hiện dữ liệu dưới dạng bảng − Bao gồm tập hợp các dòng - TableRow (thông qua thuộc tính Rows), mỗi dòng được tạo thành từ tập hợp các ô - TableCell (thông qua thuộc tính Cells) − Mỗi ô trong Table có thể chứa các điều khiển khác Bài 2: Server Controls Các điều khiển khác Minh họa 30 30 Ngành lập trình - CSDL • Calendar − Dùng để thể hiện lịch trong tháng − Sự kiện:  SelectionChanged: khi thay đổi ngày khác  VisbleMonthChanged: khi thay đổi tháng khác  DayRender: khi các ngày được tạo ra Bài 2: Server Controls Các điều khiển khác Minh họa 31 31 Ngành lập trình - CSDL • FileUpLoad − Dùng để upload tập tin về server − Thuộc tính: • HashFile (True/False): điều khiển có khai báo tập tin chưa • FileName: trả về tên tập tin được upload − Phương thức: • SaveAs: upload tập tin lên Server Bài 2: Server Controls Các điều khiển khác Minh họa 32 32 Ngành lập trình - CSDL • MultiView và View − Là control container, dùng để chứa các điều khiển khác − MultiView gồm có nhiều View − Thuộc tính: • ActiveViewIndex: chỉ số của view hiện hành − Phương thức: • SetActiveView: thay đổi view hiện hành Bài 2: Server Controls Các điều khiển khác Minh họa 33 33 Ngành lập trình - CSDL Nội dung 1. Tổng quan về Server Controls 2. Đối tượng Asp.Net Page 4. Web Server Controls 5. Các điều khiển khác 6. Đối tượng ViewState 3. HTML Server Controls 34 34 Ngành lập trình - CSDL Đối tượng ViewState • Giới thiệu • Sử dụng   35 35 Ngành lập trình - CSDL • Giới thiệu − Dùng để lưu lại những thông tin của trang web sau khi Web Server gởi kết quả về cho client  Quản lý tình trạng ở mức client − Thuộc tính EnableViewState của trang web cho phép sử dụng đối tượng này hay không (True/False) Bài 2: Server Controls Đối tượng ViewState Minh họa 36 36 Ngành lập trình - CSDL • Sử dụng:  Gán giá trị cho ViewState: ViewState[“Tên trạng thái”] = ;  Nhận giá trị: = ViewState[“Tên trạng thái”]; Lưu ý: “Tên trạng thái” có phân biệt chữ HOA/thường Bài 2: Server Controls Đối tượng ViewState Minh họa 37 37 Ngành lập trình - CSDL HẾT Bài 2: Server Controls 1 1 Ngành lập trình - CSDL 2 2 Ngành lập trình - CSDL Mục tiêu • Sử dụng thành thạo các điều khiển kiểm tra dữ liệu 3 3 Ngành lập trình - CSDL Nội dung 1. Giới thiệu chung 2. RequireFieldValidator 4. RangeValidator 5. RegularExpressionValidator 6. CustomValidator 3. CompareValidator 7. ValidationSummary 4 4 Ngành lập trình - CSDL • Dùng để kiểm tra tính hợp lệ của dữ liệu • Tự động phát sinh code kiểm tra dữ liệu ở client-side tùy thuộc vào web browser có hỗ trợ thực thi script ở client không Bài 3: Điều khiển kiểm tra dữ liệu Giiới thiệu 5 5 Ngành lập trình - CSDL • Qui trình kiểm tra: Bài 3: Điều khiển kiểm tra dữ liệu Giiới thiệu Dữ liệu nhập Hợp lệ? Hợp lệ? Các xử lý Không Có Client Server Có Không 6 6 Ngành lập trình - CSDL • Một số thuộc tính cơ bản − ControlToValidate: tên điều khiển cần kiểm tra − Text: chuỗi thông báo xuất hiện khi có lỗi − ErrorMessage: chuỗi thông báo xuất hiện trong điều khiển Validation Summary − EnableClientScript: cho phép thực hiện kiểm tra ở phía Client hay không (True/False) Bài 3: Điều khiển kiểm tra dữ liệu Giới thiệu 7 7 Ngành lập trình - CSDL • Một số thuộc tính cơ bản − SetFocusError(True/False): đặt con trỏ vào điều khiển khi dữ liệu không hợp lệ − ValidationGroup: tên nhóm. Nhóm các điều khiển có cùng giá trị ValidationGroup Bài 3: Điều khiển kiểm tra dữ liệu Giới thiệu 8 8 Ngành lập trình - CSDL Nội dung 1. Giới thiệu chung 2. RequireFieldValidator 4. RangeValidator 5. RegularExpressionValidator 6. CustomValidator 3. CompareValidator 7. ValidationSummary 9 9 Ngành lập trình - CSDL • Kiểm tra giá trị trong điều khiển phải được nhập • Thuộc tính InitialValue: − Giá trị khởi động − Giá trị nhập vào phải khác với giá trị của thuộc tính này Bài 3: Điều khiển kiểm tra dữ liệu RequiredFieldValidatior Minh họa 10 10 Ngành lập trình - CSDL Nội dung 1. Giới thiệu chung 2. RequireFieldValidator 4. RangeValidator 5. RegularExpressionValidator 6. CustomValidator 3. CompareValidator 7. ValidationSummary 11 11 Ngành lập trình - CSDL • So sánh giá trị của một điều khiển với giá trị của một điều khiển khác • So sánh giá trị của một điều khiển với một giá trị được xác định trước • Trong trường hợp không nhập dữ liệu, điều khiển sẽ không thực hiện kiểm tra • Thuộc tính : − ControlToCompare (ưu tiên) − Operator − Type − ValueToCompare Bài 3: Điều khiển kiểm tra dữ liệu CompareValidator Minh họa 12 12 Ngành lập trình - CSDL Nội dung 1. Giới thiệu chung 2. RequireFieldValidator 4. RangeValidator 5. RegularExpressionValidator 6. CustomValidator 3. CompareValidator 7. ValidationSummary 13 13 Ngành lập trình - CSDL • Kiểm tra giá trị của điều khiển nằm trong đoạn [min-max] • Thuộc tính: − MinimumValue: giá trị nhỏ nhất − MaximumValue: giá trị lớn nhất − Type: xác định kiểu dữ liệu để kiểm tra (String/Integer/Double/Date/Currency) Bài 3: Điều khiển kiểm tra dữ liệu RangeValidator Minh họa 14 14 Ngành lập trình - CSDL Nội dung 1. Giới thiệu chung 2. RequireFieldValidator 4. RangeValidator 5. RegularExpressionValidator 6. CustomValidator 3. CompareValidator 7. ValidationSummary 15 15 Ngành lập trình - CSDL • Kiểm tra giá trị của điều khiển phải theo mẫu qui định • Thuộc tính: − ValidationExpression: qui định mẫu kiểm tra dữ liệu dựa vào các ký hiệu qui định Bài 3: Điều khiển kiểm tra dữ liệu RegularExpressionValidator Minh họa 16 16 Ngành lập trình - CSDL Nội dung 1. Giới thiệu chung 2. RequireFieldValidator 4. RangeValidator 5. RegularExpressionValidator 6. CustomValidator 3. CompareValidator 7. ValidationSummary 17 17 Ngành lập trình - CSDL • Cho phép người dùng tự viết hàm xử lý kiểm tra lỗi • Thuộc tính − ValidateEmptyText(True/False): có kiểm tra khi giá trị nhập là rỗng − ClientValidationFunction: tên hàm kiểm tra ở mức client • Sự kiện ServerValidate: dùng để xử lý kiểm tra dữ liệu ở mức Server Bài 3: Điều khiển kiểm tra dữ liệu CustomValidator Minh họa 18 18 Ngành lập trình - CSDL Nội dung 1. Giới thiệu chung 2. RequireFieldValidator 4. RangeValidator 5. RegularExpressionValidator 6. CustomValidator 3. CompareValidator 7. ValidationSummary 19 19 Ngành lập trình - CSDL • Dùng để hiển thị bảng lỗi - tất cả các lỗi hiện có trên trang Web (thuộc tính ErrorMessage) • Thuộc tính − HeaderText: chuỗi văn bản của dòng tiêu đề − ShowMessageBox(True/False): có thể hiện hộp thọai thông báo lỗi trên Browser Bài 3: Điều khiển kiểm tra dữ liệu ValidationSummary Minh họa 20 20 Ngành lập trình - CSDL HẾT Bài 3: Điều khiển kiểm tra dữ liệu 1 1 Ngành lập trình - CSDL 2 2 Ngành lập trình - CSDL Mục tiêu • Sử dụng thành thạo các điều khiển thuộc nhóm Data • Tạo trang web có dạng Master-Details 3 3 Ngành lập trình - CSDL Nội dung 1. Tổng quan 2. Các điều khiển Danh sách 4. Các điều khiển DataSource 5. Điều khiển DataList 6. DetailsView và FormView 3. Điều khiển GridView 4 4 Ngành lập trình - CSDL • Phân loại − Điều khiển Danh sách - List Controls − Điều khiển liên kết dữ liệu – Data-Bound controls − Điều khiển nguồn dữ liệu – Data-Source controls Bài 4: Các điều khiển dữ liệu Tổng quan 5 5 Ngành lập trình - CSDL • Các điều khiển này có khả năng liên kết với một nguồn dữ liệu • Nguồn dữ liệu dùng để liên kết: ArrayList, SortedList, HashTable, DataSet, DataTable, DataView, DataReader, Bài 4: Các điều khiển dữ liệu Tổng quan 6 6 Ngành lập trình - CSDL • Thao tác liên kết dữ liệu của điều khiển List và Data-Bound: 2 cách − Lúc thực thi: thường sử dụng thuộc tính DataSource của điều khiển − Lúc thiết kế: sử dụng các điều khiển Data source (AccessDataSource, SqlDataSource, ) kết hợp với thuộc tính DataSourceID Bài 4: Các điều khiển dữ liệu Tổng quan 7 7 Ngành lập trình - CSDL Nội dung 1. Tổng quan 2. Các điều khiển Danh sách 4. Các điều khiển DataSource 5. Điều khiển DataList 6. DetailsView và FormView 3. Điều khiển GridView 8 8 Ngành lập trình - CSDL Điều khiển Danh sách – List Controls • ListBox và DropdownList • CheckBoxList và RadioButtonList • BulletedList    9 9 Ngành lập trình - CSDL • ListBox và DropDownList − Dùng để hiển thị danh sách − Items: chứa tập hợp các mục chọn, có thể thêm vào lúc thiết kế (Design) hoặc lúc thực thi (Run-time) − Rows: số dòng hiển thị của ListBox − SelectionMode: cách thức chọn các mục trong ListBox (Single/Multi) Bài 4: Các điều khiển dữ liệu Điều khiển danh sách – List controls 10 10 Ngành lập trình - CSDL • ListBox và DropDownList − DataTextField: tên field có giá trị thể hiện trên điều khiển − DataValueField: tên field có gía trị lưu trữ − AutoPostBack: có tự động PostBack về Server khi mục chọn của điều khiển bị thay đổi (True/False) Bài 4: Các điều khiển dữ liệu Điều khiển danh sách – List controls 11 11 Ngành lập trình - CSDL • ListBox và DropDownList − Một số thuộc tính lúc thực thi:  SelectedIndex: chỉ số của mục được chọn  SelectedItem: mục được chọn (kiểu ListItem)  SelectedValue: giá trị của mục được chọn − Sự kiện SelectedIndexChanged: xảy ra khi thay đổi dòng được chọn Minh họa Bài 4: Các điều khiển dữ liệu Điều khiển danh sách – List controls 12 12 Ngành lập trình - CSDL • ListBox và DropDownList − Một số thao tác:  Thêm mới một mục vào cuối danh sách Items.Add() hoặc Items.Add()  Thêm mới một mục tại một vị trí xác định Items.Insert(,) hoặc Items.Insert(,) Minh họa Bài 4: Các điều khiển dữ liệu Điều khiển danh sách – List controls 13 13 Ngành lập trình - CSDL • ListBox và DropDownList − Một số thao tác:  Xóa một mục ra khỏi danh sách Items.Remove() hoặc Items.Remove()  Xóa tất cả các mục trong danh sách Items.clear Minh họa Bài 4: Các điều khiển dữ liệu Điều khiển danh sách – List controls 14 14 Ngành lập trình - CSDL • ListBox và DropDownList − Một số thao tác:  Kiểm tra một mục đã có trong danh sách chưa Items.Contains() As Boolean hoặc Items.IndexOf() As Integer  Lấy giá trị tổng số mục có trong danh sách Items.Count Minh họa Bài 4: Các điều khiển dữ liệu Điều khiển danh sách – List controls 15 15 Ngành lập trình - CSDL • CheckBoxList và RadioButtonList − RepeatColumns: qui định số cột hiển thị − RepeatDirection: qui định hình thức hiển thị (Vertical/Horizontal) − Các thao tác thêm, xóa các mục chọn: giống ListBox Minh họa Bài 4: Các điều khiển dữ liệu Điều khiển danh sách – List controls 16 16 Ngành lập trình - CSDL • BulletedList − BulletStyle: style dùng làm Bullet − BulletImageUrl: URL của tập tin hình ảnh, phải có BulletStyle=CustomImage − DisplayMode: hình thức thể hiện (Text, HyperLink, LinkButton) − Các thao tác thêm, xóa các mục chọn: giống ListBox Minh họa Bài 4: Các điều khiển dữ liệu Điều khiển danh sách – List controls 17 17 Ngành lập trình - CSDL • Thao tác liên kết dữ liệu − Dòng 3, 4 có thể bỏ qua tùy vào nguồn dữ liệu Minh họa Bài 4: Các điều khiển dữ liệu Điều khiển danh sách – List controls 1- ArrayList = new ArrayList(); //Khởi tạo nguồn .Add(Object); //Thêm dữ liệu .. 2- .DataSource=; //Khai báo nguồn dữ liệu 3- .DataTextField=“Field”; //Khai báo field thể hiện 4- .DataValueField=“Field”; //Khai báo filed lưu trữ 5- .DataBind(); //Liên kết 18 18 Ngành lập trình - CSDL Nội dung 1. Tổng quan 2. Các điều khiển Danh sách 4. Các điều khiển DataSource 5. Điều khiển DataList 6. DetailsView và FormView 3. Điều khiển GridView 19 19 Ngành lập trình - CSDL GridView • Giới thiệu • Liên kết dữ liệu và định dạng • Các xử lý trên GridView    20 20 Ngành lập trình - CSDL • Giới thiệu Bài 4: Các điều khiển dữ liệu Điều khiển GridView 21 21 Ngành lập trình - CSDL • Giới thiệu − Dùng hiển thị dữ liệu dạng dòng-cột (Tabular) − Thể hiện trên trình duyệt dưới dạng HTML Table − Đặc điểm:  Hỗ trợ cơ ch ế sắp xếp dữ liệu  Hỗ trợ cơ chế phân trang dữ liệu  Có thể cập nhật dữ liệu trực tiếp trên lưới Bài 4: Các điều khiển dữ liệu Điều khiển GridView 22 22 Ngành lập trình - CSDL • Liên kết dữ liệu và định dạng − Thao tác liên kết dữ liệu lúc thực thi: .DataSource = ; .DataBiding(); − Thuộc tính định dạng: • HtmlEncoded(True/False): cho phép mã hóa dưới dạng HTML không • DataFormatString: định dạng cho giá trị của field liên kết Minh họa Bài 4: Các điều khiển dữ liệu Điều khiển GridView 23 23 Ngành lập trình - CSDL • Các xử lý − Sắp xếp dữ liệu:  Khai báo t.t AllowSorting = True  Khai báo tên cột cần sắp xếp trong ô Sort expression  Sử dụng sự kiện Sorting để xử lý:  Liên kết dữ liệu và sắp xếp theo cột cần sắp xếp  Giá trị e.SortExpression cho biết thông tin của cột được chọn Minh họa Bài 4: Các điều khiển dữ liệu Điều khiển GridView 24 24 Ngành lập trình - CSDL • Các xử lý − Phân trang: Bài 4: Các điều khiển dữ liệu Điều khiển GridView 25 25 Ngành lập trình - CSDL • Các xử lý − Phân trang:  Khai báo t.t AllowPaging = True  Khai báo t.t PageSize =  Sử dụng sự kiện PageIndexChanging để xử lý: .PageIndex = e.NewpageIndex ; //Liên kết dữ liệu  Giá trị e.NewPageIndex cho biết chỉ số trang được chọn  Thuộc tính PageIndex: chỉ số trang hiện hành trên lưới Minh họa Bài 4: Các điều khiển dữ liệu Điều khiển GridView 26 26 Ngành lập trình - CSDL • Các xử lý − Tùy biến các cột: Bài 4: Các điều khiển dữ liệu Điều khiển GridView 27 27 Ngành lập trình - CSDL • Các xử lý − Tùy biến các cột:  Bước 1: khi thiết kế, cột thể hiện có loại là TemplateField  Bước 2: dành cho xử lý đơn giản  Chèn một điều khiển vào cột TemplateField, liên kết DL với điều khiển này  Khai báo biểu thức trong ô Custom binding  Code Expression Ví dụ: hiển thị cột Gioi_tinh là “Nam” hay “Nữ” ( (bool) Eval( "Gioi_tinh")==false?"Nữ":"Nam") Minh họa Bài 4: Các điều khiển dữ liệu Điều khiển GridView 28 28 Ngành lập trình - CSDL • Các xử lý − Tùy biến các cột:  Bước 2: dành cho xử lý phức tạp, viết code trong sự kiện RowDataBound − RowDataBound: xảy ra khi lưới được liên kết dữ liệu (DataBinding). Ứng với mỗi dòng, xảy ra sự kiện này − e.Row.RowIndex: chỉ số của dòng hiện hành (Header /Footer= -1) − e.Row.RowType: lọai của mỗi dòng (Dòng chẵn, lẽ, ) Bài 4: Các điều khiển dữ liệu Điều khiển GridView 29 29 Ngành lập trình - CSDL • Các xử lý − Tùy biến các cột:  Bước 2: dành cho xử lý phức tạp, viết code trong sự kiện RowDataBound − e.Row.FindControl(“Tên điều khiển”): tìm kiếm điều khiển trên dòng hiện hành − DataBinder.Eval(e.Row.DataItem,“Tên cột”): truy xuất dữ liệu của cột trên dòng hiện hành Minh họa Bài 4: Các điều khiển dữ liệu Điều khiển GridView 30 30 Ngành lập trình - CSDL • Các xử lý − Giới thiệu 3 loại cột trong GridView: Minh họa Bài 4: Các điều khiển dữ liệu Điều khiển GridView 31 31 Ngành lập trình - CSDL • Các xử lý − Giới thiệu 3 loại cột trong GridView: • ImageField  DataImageUrlField: chứa Image URL liên kết với field  DataImageUrlFormatString: định dạng cho giá trị liên kết với thuộc tính DataImageUrlField Minh họa Ví dụ: DataImageUrlField: Hinh_minh_hoa DataImageUrlFormatString: ~/Hinh_du_lieu/{0}.jpg Bài 4: Các điều khiển dữ liệu Điều khiển GridView 32 32 Ngành lập trình - CSDL • Các xử lý − Giới thiệu 3 loại cột trong GridView: • HyperLinkField  DataNavigateUrlFields: tên field liên kết với thuộc tính NavigateUrl của hyperlink  DataNavigateUrlFormatString: định dạng cho giá trị liên kết với thuộc tính DataNavigateUrlFields  DataTexField: field có nội dung được hiển thị Ví dụ: DataNavigateUrlFields: href DataNavigateUrlFormatString: {0} DataTextField: Tencty Minh họa Bài 4: Các điều khiển dữ liệu Điều khiển GridView 33 33 Ngành lập trình - CSDL • Các xử lý − Giới thiệu 3 loại cột trong GridView: • ButtonField  ButtonType: kiểu nút lệnh (Button/Link/Image)  CommandName: tên kết hợp với nút lệnh  DataTexField: field có nội dung được hiển thị  DataTextFormatString: định dạng chuỗi thể hiện trên nút Ví dụ: CommandName: Chon DataTextField: stt DataTextFormatString: chọn: {0} Minh họa Bài 4: Các điều khiển dữ liệu Điều khiển GridView 34 34 Ngành lập trình - CSDL • Các xử lý − Giới thiệu 3 loại cột trong GridView: • ButtonField  Sự kiện RowCommand: xảy ra khi nhấn nút lệnh Minh họa Bài 4: Các điều khiển dữ liệu Điều khiển GridView 35 35 Ngành lập trình - CSDL • Các xử lý − Cập nhật dữ liệu: Minh họa Bài 4: Các điều khiển dữ liệu Điều khiển GridView 36 36 Ngành lập trình - CSDL • Các xử lý − Cập nhật dữ liệu:  Yêu cầu đầu tiên: khai báo các field dùng làm khóa cho lưới .DataKeyNames = new string[ ] {“tên field1”, }; (có thể khai báo trên cửa sổ Properties) Minh họa Bài 4: Các điều khiển dữ liệu Điều khiển GridView 37 37 Ngành lập trình - CSDL • Các xử lý − Cập nhật dữ liệu:  Giai đọan 1: thiết kế, chọn loại cột thể hiện là CommandField Thuộc tính CommandName của các nút sau có giá trị mặc định theo chức năng tương ứng: Nút Delete  CommandName = “Delete” Nút Edit  CommandName = “Edit” Nút Update  CommandName = “Update” Nút Cancel, Select Minh họa Bài 4: Các điều khiển dữ liệu Điều khiển GridView 38 38 Ngành lập trình - CSDL • Các xử lý − Cập nhật dữ liệu:  Giai đọan 2: xử lý. Sử dụng các sự kiện sau:  RowDeleting: xảy ra khi nhấn nút Delete, trước khi GridView xóa dòng  RowEditing: xảy ra khi nhấn nút Edit, trước khi GridView chuyển sang chế độ edit  RowUpadating: xảy ra khi nhấn nút Update, trước khi GridView cập nhật  RowCanceling: xảy ra khi nhấn nút Cancel, trước khi GridView thoát khỏi chế độ edit  SelectedIndexChanging: khi nhấn nút Select Minh họa Bài 4: Các điều khiển dữ liệu Điều khiển GridView 39 39 Ngành lập trình - CSDL • Các xử lý − Cập nhật dữ liệu:  Giai đọan 2: xử lý. Sử dụng các thuộc tính thường dùng sau:  .EditIndex: chỉ số dòng được sửa ở trạng thái edit  e.NewEditIndex: chỉ số của dòng đang sửa (sự kiện RowEditing)  e.RowIndex: chỉ số của dòng hiện hành  e.Rows[n1].Cells[n2].Controls[n3]: nhận điều khiển  .DataKeys[n]: truy xuất giá trị khóa tại dòng có chỉ số là n Minh họa Bài 4: Các điều khiển dữ liệu Điều khiển GridView 40 40 Ngành lập trình - CSDL • Các xử lý − Cập nhật dữ liệu:  Giai đọan 2: xử lý. Có các chức năng sau:  Chọn dòng  Sửa: chuyển GridView sang trạng thái edit  Không: khôi phục dữ liệu ban đầu và trả về trạng thái ReadOnly  Ghi: cập nhật dữ liệu vào CSDL và trả về trạng thái ReadOnly Minh họa Bài 4: Các điều khiển dữ liệu Điều khiển GridView 41 41 Ngành lập trình - CSDL Nội dung 1. Tổng quan 2. Các điều khiển Danh sách 4. Các điều khiển DataSource 5. Điều khiển DataList 6. DetailsView và FormView 3. Điều khiển GridView 42 42 Ngành lập trình - CSDL Các điều khiển DataSource • Giới thiệu • Các thuộc tính cơ bản • Sử dụng DataSource với GridView    43 43 Ngành lập trình - CSDL • Giới thiệu − Là các điều khiển dùng để chứa nguồn dữ liệu được rút trích từ các loại CSDL (Access, Sql Serever, ) − Dùng để liên kết với các điều khiển Data-Bound và khi liên kết thì chúng sẽ hổ trợ các tính năng sau: • Hổ trợ phân trang • Hổ trợ sắp xếp tăng/giảm tự động • Cập nhật dữ liệu  Tất cả các xử lý trên gần như không cần viết code Bài 4: Các điều khiển dữ liệu Các điều khiển DataSource 44 44 Ngành lập trình - CSDL • Các điều khiển − AccessDataSource: kết nối đến tập tin CSDL Access − SqlDataSource : kết nối đến CSDL SQL Server, Oracle, − XmlDataSource : kết nối đến tập tin XML − ObjectDataSource : kết nối đến một object (class, ) hoặc Typed-DataSet đặt trong thư mục Bin | App_Code − SitemapDataSource : liên kết đến tập tin .sitemap Minh họa Bài 4: Các điều khiển dữ liệu Các điều khiển DataSource 45 45 Ngành lập trình - CSDL • Các thuộc tính cơ bản − DataFile: tập tin CSDL Access (đường dẫn đầy đủ) − ConnectionString: chuỗi liên kết với các CSDL(SQL Server, Oracle, ) − SelectQuery: truy vấn chọn lựa − InsertQuery: truy vấn thêm mẫu tin − UpdateQuery: truy vấn cập nhật − DeleteQuery: truy vấn xóa Minh họa Bài 4: Các điều khiển dữ liệu Các điều khiển DataSource 46 46 Ngành lập trình - CSDL • Điều khiển SqlDataSource − Thao tác cấu hình: • Chọn điều khiển, nhấn phím phải  configure Data Source • Khai báo Connection • Chọn Data Source • Chọn Microsoft SQL Server • Khai báo Server name và CSDL • Cấu hình câu lệnh Select và phát sinh các câu lệnh cập nhật • Kiểm tra và kết thúc Minh họa Bài 4: Các điều khiển dữ liệu Các điều khiển DataSource 47 47 Ngành lập trình - CSDL • Sử dụng SqlDataSource với GridView − Liên kết dữ liệu • Khai báo thuộc tính DataSourceID của GridView Minh họa Các điều khiển DataSource Bài 4: Các điều khiển dữ liệu 48 48 Ngành lập trình - CSDL • Sử dụng SqlDataSource với GridView − Lọc dữ liệu • FilterExpression: biểu thức lọc, chỉ áp dụng khi thuộc tính DataSourceMode là DataSet • FilterParameters: các tham số tham gia trong thuộc tính FilterExpression • SelectCommandType (Text/StoredProcedure): kiểu tạo truy vấn chọn lựa (dùng câu lệnh SQL hay thủ tục nội) Minh họa Các điều khiển DataSource Bài 4: Các điều khiển dữ liệu 49 49 Ngành lập trình - CSDL • Sử dụng SqlDataSource với GridView − Cập nhật dữ liệu • Hủy: viết câu lệnh truy vấn xóa có tham số tại thuộc tính DeleteQuery  Có thể bổ sung phần kiểm tra trước khi hủy trong sự kiện RowDeleting Minh họa Các điều khiển DataSource Bài 4: Các điều khiển dữ liệu 50 50 Ngành lập trình - CSDL • Sử dụng SqlDataSource với GridView − Cập nhật dữ liệu • Cập nhật: viết câu lệnh truy vấn cập nhật có tham số tại thuộc tính UpdateQuery  Có thể bổ sung phần kiểm tra dữ liệu trước khi cập nhật trong sự kiện RowUpdating  Sử dụng thuộc tính e.NewValues[“tên field”] để kiểm tra Minh họa Các điều khiển DataSource Bài 4: Các điều khiển dữ liệu 51 51 Ngành lập trình - CSDL Nội dung 1. Tổng quan 2. Các điều khiển Danh sách 4. Các điều khiển DataSource 5. Điều khiển DataList 6. DetailsView và FormView 3. Điều khiển GridView 52 52 Ngành lập trình - CSDL DataList • Giới thiệu • Liên kết dữ liệu và định dạng • Cập nhật dữ liệu    53 53 Ngành lập trình - CSDL • Giới thiệu Bài 4: Data-Bound Web Server Controls DataList Minh họa 54 54 Ngành lập trình - CSDL • Giới thiệu − Dùng để hiển thị dữ liệu theo nhiều dạng − Thể hiện trên trình duyệt dưới dạng HTML Table − Đặc điểm:  Không hỗ trợ cơ chế sắp xếp dữ liệu, phân trang  Có thể cập nhật dữ liệu trực tiếp trên danh sách  Phải tự thiết kế hình thức Bài 4: Data-Bound Web Server Controls DataList 55 55 Ngành lập trình - CSDL • Liên kết và định dạng − Thao tác liên kết dữ liệu: giống GridView − Thao tác thiết kế: giống như cột TemplateField của GridView − Định dạng: giống GridView • RepeatDirection(Horizontal/Vertical): hướng hiển thị dữ liệu • RepeatColumns: số cột hiển thị Bài 4: Data-Bound Web Server Controls DataList Minh họa 56 56 Ngành lập trình - CSDL • Cập nhật dữ liệu  Yêu cầu đầu tiên: khai báo field dùng làm khóa cho danh sách .DataKeyField = “tên field”;  Bước 1: thiết kế, bổ sung các điều khiển trong thành phần EditItemTemplate Nên khai báo thuộc tính CommandName của các nút chức năng: Nút Edit  CommandName = “Edit” Nút Update  CommandName = “Update” Nút Cancel  CommandName = “Cancel” Bài 4: Data-Bound Web Server Controls DataList Minh họa 57 57 Ngành lập trình - CSDL • Cập nhật dữ liệu  Bước 2: xử lý, có các sự kiện  EditCommand # RowEditing (GridView)  UpdateComand # RowDeleting (GridView)  ItemComand #RowCommand (GridView) Bài 4: Data-Bound Web Server Controls DataList Minh họa 58 58 Ngành lập trình - CSDL • Cập nhật dữ liệu  Bước 2: xử lý, có các thuộc tính thường dùng  .EditItemIndex: chỉ số dòng được sửa ở trạng thái edit  e.Item.ItemIndex: chỉ số của dòng hiện hành  e.Item.FindControl(“tên điều khiển”): tìm kiếm điều khiển trên dòng hiện hành  .DataKeys[n]: truy xuất giá trị khóa tại dòng có chỉ số là n Bài 4: Data-Bound Web Server Controls DataList Minh họa 59 59 Ngành lập trình - CSDL Nội dung 1. Tổng quan 2. Các điều khiển Danh sách 4. Các điều khiển DataSource 5. Điều khiển DataList 6. DetailsView và FormView 3. Điều khiển GridView 60 60 Ngành lập trình - CSDL DetailsView • Giới thiệu • Liên kết dữ liệu và định dạng • Các xử lý • Tạo dạng Master/Detail     61 61 Ngành lập trình - CSDL • Giới thiệu Bài 4: Data-Bound Web Server Controls DetailsView 62 62 Ngành lập trình - CSDL • Giới thiệu − Dùng hiển thị dữ liệu dạng cột (Columnar) − Thể hiện trên trình duyệt dưới dạng HTML Table − Đặc điểm:  Hỗ trợ cơ chế phân trang dữ liệu  Cho phép cập nhật dữ liệu trực tiếp  Cho phép kết hợp với GridView để tạo ra dạng Master-Detail Bài 4: Data-Bound Web Server Controls DetailsView 63 63 Ngành lập trình - CSDL • Liên kết dữ liệu và định dạng − Thao tác liên kết dữ liệu: giống GridView − Thao tác định dạng Bài 4: Data-Bound Web Server Controls DetailsView Minh họa 64 64 Ngành lập trình - CSDL • Các xử lý − Phân trang: giống GridView Bài 4: Data-Bound Web Server Controls DetailsView Minh họa 65 65 Ngành lập trình - CSDL • Các xử lý − Cập nhật dữ liệu: • Khai báo các thuộc tính phát sinh các nút cập nhật:  AutoGenerateDeleteButton  AutoGenerateEditButton  AutoGenerateInsertButton Bài 4: Data-Bound Web Server Controls DetailsView 66 66 Ngành lập trình - CSDL • Các xử lý − Cập nhật dữ liệu: • Phần xử lý thì giống GridView, chỉ khác nhau về tên sự kiện và một số thuộc tính Bài 4: Data-Bound Web Server Controls DetailsView Minh họa Sự kiện trên GridView Sự kiện trên DetailView RowCommand ItemCommand RowInserting ItemInserting RowUpdating ItemUpdating RowDeleting ItemDeleting ModeChanging: khi chuyển sang một trạng thái khác(edit, insert, read-only) 67 67 Ngành lập trình - CSDL • Tạo dạng Master-Detail Bài 4: Data-Bound Web Server Controls DetailsView Minh họa 68 68 Ngành lập trình - CSDL • Tạo dạng Master-Detail − Bước 1: tạo SqlDataSource1 dùng làm nguồn cho GridView − Bước 2: tạo GridView dùng làm Master và kết nguồn vào (Nên tạo một nút lệnh xử lý chọn dòng) − Bước 3: tạo SqlDataSource2 dùng làm nguồn cho DetailsView + FilterParameters: giá trị của tham số là .SelectedValue + FilterExpression: biểu thức lọc tương ứng với tham số − Bước 4: tạo DetailsView dùng làm Detail và kết nguồn vào Bài 4: Data-Bound Web Server Controls DetailsView Minh họa 69 69 Ngành lập trình - CSDL FormView • Giới thiệu • Liên kết dữ liệu và định dạng • Các xử lý    70 70 Ngành lập trình - CSDL • Giới thiệu − Tương tự DetailsView nhưng phải tự thiết kế dạng hiển thị − Thể hiện trên trình duyệt dưới dạng HTML Table − Đặc điểm:  Hỗ trợ cơ chế phân trang dữ liệu  Cho phép cập nhật dữ liệu trực tiếp • Liên kết, định dạng và các xử lý: − Giống DetailsView Bài 4: Data-Bound Web Server Controls FormView 71 71 Ngành lập trình - CSDL HẾT Bài 4: Data-Bound Web Server Controls 1 1 Ngành lập trình - CSDL 2 2 Ngành lập trình - CSDL Mục tiêu • Tạo và sử dụng Web User Controls 3 3 Ngành lập trình - CSDL Nội dung 1. Giới thiệu 2. Tạo và sử dụng User Controls 3. Load động User Controls 4 4 Ngành lập trình - CSDL • Giới thiệu − Khi kết hợp các control để tạo thành một control mới gọi là Web User Controls (UC) − Sử dụng UC cũng tương tự như sử dụng thủ tục/hàm  Khả năng tái sử dụng UC trên các trang web Bài 5: Web User Controls Giới thiệu 5 5 Ngành lập trình - CSDL Nội dung 1. Giới thiệu 2. Tạo và sử dụng User Controls 3. Load động User Controls 6 6 Ngành lập trình - CSDL • Thao tác tạo Bài 5: Web User Controls Tạo và sử dụng User Controls 7 7 Ngành lập trình - CSDL • Thao tác tạo − Tập tin lưu trữ UC có phần mở rộng là .ascx − Thiết kế: giống như thiết kế một trang aspx − Điểm khác biệt với trang aspx: • Thay thế tag định hướng bằng tag • Không có tag và Bài 5: Web User Controls Tạo và sử dụng User Controls Minh họa 8 8 Ngành lập trình - CSDL • Sử dụng − Có 2 cách: • Kéo và thả UC vào trang aspx. Lúc đó, trang aspx sẽ xuất hiện tag định hướng • Cấu hình trong tập tin web.config Bài 5: Web User Controls Tạo và sử dụng User Controls Minh họa <add tagPrefix=“tiếp đầu ngữ của tag" tagName=“tên tag" src=“.ascx"/> 9 9 Ngành lập trình - CSDL • Sử dụng − Có 2 cách: Bài 5: Web User Controls Tạo và sử dụng User Controls Minh họa Ví dụ: // Khai báo trong web.config <add tagPrefix=“Cuoitrang" tagName=“TH_FOOTER" src="~/The_hien/TH_FOOTER.ascx"/> //Sử dụng trên trang aspx: 10 10 Ngành lập trình - CSDL Nội dung 1. Giới thiệu 2. Tạo và sử dụng User Controls 3. Load động User Controls 11 11 Ngành lập trình - CSDL • Khi nào load động UC − Trong một trang aspx có yêu cầu sử dụng nhiều UC trên cùng một vị trí của trang − Bài toán thường gặp: • Khi chuỗi tham số của đối tượng Request thay đổi Bài 5: Web User Controls Load động User Controls Minh họa 12 12 Ngành lập trình - CSDL • Các bước thực hiện: trên trang .aspx − Tạo điều khiển Panel − Vào sự kiện Page_Load, viết đoạn code sau: Bài 5: Web User Controls Load động User Controls Minh họa 13 13 Ngành lập trình - CSDL HẾT Bài 5: Web User Controls 1 1 Ngành lập trình - CSDL 2 2 Ngành lập trình - CSDL Mục tiêu • Tìm hiểu các đối tượng quản lý Web site • Sử dụng thành thạo một số đối tượng 3 3 Ngành lập trình - CSDL Nội dung 1. Các đối tượng quản lý ứng dụng Web 2. Tập tin quản lý và cấu hình ứng dụng Web 4 4 Ngành lập trình - CSDL Các đối tượng quản lý ứng dụng web • Đối tượng Request và Response • Đối tượng Server • Đối tượng Application và Session • Đối tượng Cookies     5 5 Ngành lập trình - CSDL • Request − Dùng để nhận giá trị từ Client gửi về cho Web server − Thuộc tính QueryString: cho phép nhận các giá trị truyền qua chuỗi tham số http: // [: ] [ [? ] ] Bài 6: Quản lý ứng dụng web Các đối tượng quản lý ứng dụng web Chuỗi tham số URL Request.QueryString[““]; 6 6 Ngành lập trình - CSDL • Request Bài 6: Quản lý ứng dụng web Các đối tượng quản lý ứng dụng web Ví dụ: // Khi truy xuất string Art; int id ; Art = Server.HtmlEncode(Request.QueryString[“ArticleID”]); id = Request.QueryString[“PID”]; Minh họa 7 7 Ngành lập trình - CSDL • Response − Được sử dụng để giao tiếp với Client (gởi kết quả đến Client) − Quản lý và điều phối thông tin từ Web Server đến trình duyệt của người dùng Bài 6: Quản lý ứng dụng web Các đối tượng quản lý ứng dụng web 8 8 Ngành lập trình - CSDL • Response − Phương thức: • Write: in một chuỗi ra trang web, không thể qui định vị trí hiển thị của chuỗi Bài 6: Quản lý ứng dụng web Các đối tượng quản lý ứng dụng web Response.Write(“chuỗi") ; Ví dụ: Response.Write(“Chào các bạn”) ; Minh họa 9 9 Ngành lập trình - CSDL • Response − Phương thức: • Redirect: gởi thông điệp yêu cầu Web Browser truy cập đến một địa chỉ khác Bài 6: Quản lý ứng dụng web Các đối tượng quản lý ứng dụng web Response.Redirect(“URL") ; Ví dụ: Response.Redirect(“~/Man_hinh/Bai2.aspx”) ; Minh họa 10 10 Ngành lập trình - CSDL • Server − Được sử dụng để cung cấp thông tin của Web Server cho ứng dụng Bài 6: Quản lý ứng dụng web Các đối tượng quản lý ứng dụng web 11 11 Ngành lập trình - CSDL • Server − Phương thức: • Transfer(“URL”): ngừng thi hành trang hiện hành, gởi yêu cầu mới đến trang khác Bài 6: Quản lý ứng dụng web Các đối tượng quản lý ứng dụng web Server.Transfer(“URL") ; Ví dụ: Server.Transfer(“~/Man_hinh/Bai2.aspx”) ; Minh họa 12 12 Ngành lập trình - CSDL • Server − Phương thức: • MapPath(): trả về đường dẫn vật lý tương ứng với đường dẫn ảo trên Web Server Lưu ý: sử dụng ký hiệu “~” để chỉ đến đường dẫn tương đối của một đối tượng và dấu “..” để chỉ đến đường dẫn tuyệt đối Bài 6: Quản lý ứng dụng web Các đối tượng quản lý ứng dụng web Server.MapPath(“"): đường dẫn đến thư mục của trang hiện hành Minh họa Server.MapPath(“\"): đường dẫn đến thư mục root của IIS (C:\Inetpub\wwwroot\) 13 13 Ngành lập trình - CSDL • Application − Đối tượng toàn cục, quản lý toàn bộ ứng dụng Web − Thông tin được lưu trữ trong đối tượng Application được “hiểu” ở tất cả trang aspx trong suốt thời gian “sống” của ứng dụng − Chỉ bị đóng/hủy khi tắt Web Server Bài 6: Quản lý ứng dụng web Các đối tượng quản lý ứng dụng web 14 14 Ngành lập trình - CSDL • Application − Tạo biến Application − Lấy giá trị Bài 6: Quản lý ứng dụng web Các đối tượng quản lý ứng dụng web Application.Lock(); Application[“”] = ; Application.Unlock(); = Application[“”]; Lưu ý: phân biệt chữ HOA/thường 15 15 Ngành lập trình - CSDL • Session − Lưu trữ thông tin trong một phiên làm việc cụ thể − Được tạo ra khi người dùng kết nối đến Web Server lần đầu tiên − Thuộc tính Timeout(phút): thời gian duy trì Session, nếu người dùng không tương tác với Web Server (default=20’) − Phương thức Abandon: hủy Session và giải phóng tài nguyên cho Web Server Bài 6: Quản lý ứng dụng web Các đối tượng quản lý ứng dụng web 16 16 Ngành lập trình - CSDL • Session − Tạo biến Session − Lấy giá trị Bài 6: Quản lý ứng dụng web Các đối tượng quản lý ứng dụng web Session[“”] = ; = Session[“”]; Lưu ý: - phân biệt chữ HOA/thường - Biến được lưu trữ trong Session không bị loại bỏ khi chuyển đổi giữa các trang 17 17 Ngành lập trình - CSDL • Cookies − Dùng để lưu trữ thông tin của người dùng tại máy Client − Thêm Cookies Bài 6: Quản lý ứng dụng web Các đối tượng quản lý ứng dụng web Response.Cookies.Add() ; Ví dụ: //Khai báo Cookies HttpCookie cookTen = new HttpCookie("Ten_dn"); cookTen.Value = "Pham-Thien-Thanh"; cookTen.Expires = DateTime.Today.AddDays(3) ; // hết hạn Response.Cookies.Add(cookTen); // thêm vào client 18 18 Ngành lập trình - CSDL • Cookies − Lấy giá trị từ Cookies Bài 6: Quản lý ứng dụng web Các đối tượng quản lý ứng dụng web Request.Cookies[“Tên Cookie”].Value; Ví dụ: HttpCookie cookTen = Request.Cookies["Ten_dn"] if (cookTen != null) Xuat_Cook.Text = Request.Cookies["Ten_dn"].Value; 19 19 Ngành lập trình - CSDL Nội dung 1. Các đối tượng quản lý ứng dụng Web 2. Tập tin quản lý và cấu hình ứng dụng Web 20 20 Ngành lập trình - CSDL Tập tin quản lý và cấu hình ứng dụng Web • Tập tin Global.asax • Tập tin Web.config   21 21 Ngành lập trình - CSDL • Tập tin Global.asax − Thao tác tạo Bài 6: Quản lý ứng dụng web Tập tin quản lý và cấu hình ứng dụng web Minh họa 22 22 Ngành lập trình - CSDL • Tập tin Global.asax − Một project chỉ có một tập tin Global.asax − Chứa các đọan code xử lý trong các sự kiện cấp Session và Aplication − Khai báo và khởi tạo cho biến Application, Session trong các sự kiện này − Các sự kiện trong tập tin: xem trực tiếp trên môi trường Bài 6: Quản lý ứng dụng web Tập tin quản lý và cấu hình ứng dụng web Minh họa 23 23 Ngành lập trình - CSDL • Tập tin Web.config − Trong một project được phép có nhiều tập tin Web.config − Có dạng cấu trúc XML − Chứa các thông tin cấu hình của ứng dụng Web − Cấu trúc tập tin − Cấu hình mặc định Bài 6: Quản lý ứng dụng web Tập tin quản lý và cấu hình ứng dụng web Minh họa 24 24 Ngành lập trình - CSDL • Tập tin Web.config − Làm việc với tập tin: • Bổ sung các thông tin tùy chọn riêng cho ứng dụng • Truy xuất thông tin Bài 6: Xây dựng và quản lý ứng dụng web Các đối tượng quản lý ứng dụng web Minh họa System.Configuration.ConfigurationManager.AppSettings[“Khóa”]; 25 25 Ngành lập trình - CSDL HẾT Bài 6: Quản lý ứng dụng web 1 1 Ngành lập trình - CSDL 2 2 Ngành lập trình - CSDL Mục tiêu • Hiểu được Web Services • Sử dụng các Web Services trên Internet • Xây dựng được các Web Services 3 3 Ngành lập trình - CSDL Nội dung 1. Tìm hiểu về Web Services 2. Xây dựng Web Services 3. Sử dụng Web Services 4. Xây dựng Web Services truy xuất dữ liệu 4 4 Ngành lập trình - CSDL Tìm hiểu về Web Services • Web Services (WS) là gì? • WS hoạt động như thế nào?   5 5 Ngành lập trình - CSDL • Web Services là gì ? − Là một hệ thống phần mềm được thiết kế dùng để hổ trợ sự tương tác giữa các máy tính trên mạng − Có khả năng chạy trên những hệ điều hành và framework khác nhau − Mục tiêu của WS là cung cấp một số chức năng của nó (có thể là của một các nhân hay một tổ chức) Bài 7: Web Services Tìm hiểu về Web Services 6 6 Ngành lập trình - CSDL • Web Services hoạt động như thế nào ? − WS có 3 thành phần cơ bản: SOAP, WSDL và UDDI − SOAP (Simple Object Access Protocol): là một giao thức truyền thông dùng để liên lạc và gởi thông thông điệp giữa các ứng dụng trên Internet. Có nền tảng dựa trên XML. Có khả năng xuyên qua bức tường lửa (Firewall). − WSDL (Web Services Description Language): là ngôn ngữ dựa trên ngôn ngữ XML, dùng để mô tả WS và cách thức truy xuất nó − UDDI (Universal Description, Discovery and Integration): là một dịch vụ danh bạ, nơi mà cá nhân hoặc tổ chức có thể đăng ký và tìm kiếm WS Bài 7: Web Services Tìm hiểu về Web Services 7 7 Ngành lập trình - CSDL • Web Services hoạt động như thế nào ? Bài 7: Web Services Tìm hiểu về Web Services Kiến trúc Web Services 8 8 Ngành lập trình - CSDL • Web Services hoạt động như thế nào ? Bài 7: Web Services Tìm hiểu về Web Services Phối hợp hoạt động giữa các ứng dụng 9 9 Ngành lập trình - CSDL Nội dung 1. Tìm hiểu về Web Services 2. Xây dựng Web Services 3. Sử dụng Web Services 4. Xây dựng Web Services truy xuất dữ liệu 10 10 Ngành lập trình - CSDL Xây dựng Web Services • Tạo Web Services trong VS .Net • Kiểm tra Web Services   11 11 Ngành lập trình - CSDL • Tạo Web Services trong VS .Net Bài 7: Web Services Xây dựng Web Services 12 12 Ngành lập trình - CSDL • Tạo Web Services trong VS .Net − Tập tin lưu trữ có phần mở rộng là asmx − Tập tin Code behind asmx.cs được đặt trong thư mục App_code − Các phương thức tạo ra luôn có thuộc tính [WebMethod] đứng trước nó Bài 7: Web Services Xây dựng Web Services 13 13 Ngành lập trình - CSDL • Tạo Web Services trong VS .Net Bài 7: Web Services Xây dựng Web Services Xuất hiện cửa sổ viết code Phương thức cung cấp sẵn Minh họa 14 14 Ngành lập trình - CSDL • Tạo Web Services trong VS .Net − Bổ sung thêm phương thức Cong_hai_so Bài 7: Web Services Xây dựng Web Services Minh họa 15 15 Ngành lập trình - CSDL • Kiểm tra Web Services − Chọn đối tượng .asmx, nhấn F5 − Kết quả thể hiện có dạng XML Bài 7: Web Services Xây dựng Web Services 16 16 Ngành lập trình - CSDL Nội dung 1. Tìm hiểu về Web Services 2. Xây dựng Web Services 3. Sử dụng Web Services 4. Xây dựng Web Services truy xuất dữ liệu 17 17 Ngành lập trình - CSDL Sử dụng Web Services • Sử dụng WS do người dùng xây dựng • Sử dụng WS được cung cấp miễn phí trên Internet   18 18 Ngành lập trình - CSDL − Muốn sử dụng WS, Client cần phải biết WS đó hổ trợ những phương thức nào, phương thức có bao nhiêu tham số, kết quả trả về, − Các thông tin cần biết này được mô tả bởi tài liệu WSDL Bài 7: Web Services Sử dụng Web Services 19 19 Ngành lập trình - CSDL • Sử dụng WS do người dùng xây dựng Bài 7: Web Services Sử dụng Web Services WS_Phep_toan pheptoan = new WS_Phep_toan(); Tong.Text = (pheptoan.Cong_hai_so(4, 5)).ToString(); 20 20 Ngành lập trình - CSDL • Sử dụng WS đựơc cung cấp miễn phí trên mạng − Bước 1: thêm WS vào ứng dụng Bài 7: Web Services Sử dụng Web Services 21 21 Ngành lập trình - CSDL • Sử dụng WS đựơc cung cấp miễn phí trên mạng − Bước 2: nhập địa chỉ của WS vào ô URL, nhấn − Bước 3: Đặt tên cho WS trong ô Web reference name, nhấn nút Add Reference để hoàn tất Bài 7: Web Services Sử dụng Web Services 22 22 Ngành lập trình - CSDL • Sử dụng WS đựơc cung cấp miễn phí trên mạng − Xuất hiện WS trong project Bài 7: Web Services Sử dụng Web Services 23 23 Ngành lập trình - CSDL • Sử dụng WS đựơc cung cấp miễn phí trên mạng − Sử dụng Bài 7: Web Services Sử dụng Web Services // Lấy tên các quốc gia trên thế giới WS_Quoc_gia.country Tp = new WS_Quoc_gia.country(); Quocgia.Text = Tp.GetCountries(); 24 24 Ngành lập trình - CSDL Nội dung 1. Tìm hiểu về Web Services 2. Xây dựng Web Services 3. Sử dụng Web Services 4. Xây dựng Web Services truy xuất dữ liệu 25 25 Ngành lập trình - CSDL Xây dựng Web Services truy xuất dữ liệu • Xây dựng WS KhachHang • Sử dụng WS KhachHang   26 26 Ngành lập trình - CSDL • Xây dựng WS KhachHang Bài 7: Web Services Xây dựng Web Services truy xuất dữ liệu 27 27 Ngành lập trình - CSDL • Sử dụng WS KhachHang Bài 7: Web Services Xây dựng Web Services truy xuất dữ liệu // Ds_khachhang có thể là GridView, DetailView, 28 28 Ngành lập trình - CSDL HẾT Bài 7: Web Services 1 1 Ngành lập trình - CSDL 2 2 Ngành lập trình - CSDL Mục tiêu • Tạo cấu trúc nhất quán các trang trong một website • Sử dụng thành thạo Themes • Hiểu và sử dụng điều khiển Menu, TreeView 3 3 Ngành lập trình - CSDL Nội dung 1. Master Pages 2. Themes và Skin 3. Site Navigation Controls 4 4 Ngành lập trình - CSDL Master Pages • Giới thiệu • Tạo Master Pages • Tham chiếu thuộc tính và điều khiển của trang Master từ trang Content • Master động     5 5 Ngành lập trình - CSDL • Giới thiệu − Master Pages cho phép tạo ra một bố cục nhất quán trên các trang web trong cùng một Web site (tương tự Template) − Nội dung thể hiện trên trình duyệt chính là sự kết hợp giữa trang master (Master page) và trang aspx (Content page) Bài 8: Xây dựng hoàn chỉnh ứng dụng web Master Pages 6 6 Ngành lập trình - CSDL Master Page Content Page Resulting Page (Trang kết quả) 7 7 Ngành lập trình - CSDL • Giới thiệu − Master Pages gồm 2 phần chính: • Master page  Dùng để xây dựng một bố cục chung cho Web site  Tập tin lưu trữ có phần mở rộng là .master  Thay thế tag định hướng bằng tag  Thao tác thiết kế: giống trang .aspx, nhưng phải bổ sung ít nhất một điều khiển ContentPalceHolder Master Pages Minh họa Bài 8: Xây dựng hoàn chỉnh ứng dụng web 8 8 Ngành lập trình - CSDL • Giới thiệu − Master Pages gồm 2 phần chính: • Content page: chính là trang .aspx nhưng có các đặc điểm sau  Bổ sung thuộc tính MasterPageFile=“Tên tập tin master” trong định hướng  Không chứa các tag tạo ra cấu trúc trang HTML  Chứa tag : số lượng tag này tùy thuộc vào trang master được kết hợp  Chỉ được phép tạo nội dung trong tag Master Pages Minh họa Bài 8: Xây dựng hoàn chỉnh ứng dụng web 9 9 Ngành lập trình - CSDL Master Pages Minh họa Code trong cửa sổ Source Bài 8: Xây dựng hoàn chỉnh ứng dụng web 10 10 Ngành lập trình - CSDL • Các bước tạo − Bước 1: tạo trang Master  chọn icon − Bước 2: thiết kế bố cục chung và bổ sung điều khiển ContentPlaceHolder vào trang Master − Bước 3: tạo trang Content và khai báo trang Master − Bước 4: thiết kế nội dung trên trang Content Master Pages Minh họa Bài 8: Xây dựng hoàn chỉnh ứng dụng web 11 11 Ngành lập trình - CSDL • Tham chiếu thuộc tính trên trang Master − Bước 1: tạo thuộc tính (Public) trong trang Master − Bước 2: bổ sung định hướng <%@ MasterType VirtualPath=“.master" %> trong trang Content − Bước 3: trong trang Content, tại sự kiện Page_Load ta tham chiếu đến thuộc tính như sau: Master Pages Minh họa Master. Bài 8: Xây dựng hoàn chỉnh ứng dụng web 12 12 Ngành lập trình - CSDL • Tham chiếu điều khiển trên trang Master − Sử dụng phương thức FindControl tại sự kiện Page_Load của trang Content Master Pages Minh họa Master.FindControl(“tên control”) Ví dụ: điều khiển Nhan_Master trên trang Master Label2.Text = ((Label) Master.FindControl("Nhan_Master")).Text; Bài 8: Xây dựng hoàn chỉnh ứng dụng web 13 13 Ngành lập trình - CSDL • Master động – Dynamic Master − Thay đổi trang Master lúc thực thi − Tại sự kiện PreInit của trang Content, khai báo như sau: Master Pages Minh họa Page.MasterPageFile =“tên tập tin Master” Bài 8: Xây dựng hoàn chỉnh ứng dụng web 14 14 Ngành lập trình - CSDL Nội dung 1. Master Page 2. Themes và Skin 3. Site Navigation Controls 15 15 Ngành lập trình - CSDL Themes và Skin • Giới thiệu • Tạo Themes • Sử dụng Themes • Themes động     16 16 Ngành lập trình - CSDL • Giới thiệu − Themes là tập hợp các khai báo thuộc tính về hình thức hiển thị (màu sắc, nét chữ , ) của điều khiển − Dùng để áp dụng chung cho tất cả các trang trong một ứng dụng hoặc tất cả các ứng dụng trên Web server − Themes được hiểu và xử lý ở phía Server Themes và Skins Bài 8: Xây dựng hoàn chỉnh ứng dụng web 17 17 Ngành lập trình - CSDL • Giới thiệu − Themes được tạo ra từ các thành phần: Skins, CSS, Images và các nguồn khác nhưng tối thiểu phải có Skins − Tất cả các thành phần trên được đặt trong thư mục App_Themes Themes và Skins Bài 8: Xây dựng hoàn chỉnh ứng dụng web 18 18 Ngành lập trình - CSDL • Giới thiệu  Skins: - Là một tập tin có phần mở rộng là .skin, chứa các tag tạo ra các Server Control kèm theo các khai báo thuộc tính Lưu ý: không khai báo thuộc tính ID trong skin Themes và Skins Ví dụ: skin Bài 8: Xây dựng hoàn chỉnh ứng dụng web 19 19 Ngành lập trình - CSDL • Giới thiệu  Skins: - Có 2 loại skin:  Default skin : không khai báo thuộc tính SkinId, và mặc định ứng dụng sẽ áp dụng skin này cho tất các điều khiển có cùng kiểu khai báo  Named skin : có khai báo thuộc tính SkinId, muốn sử dụng thì phải khai báo tường minh thuộc tính SkinId trên một điều khiển cụ thể Themes và Skins Bài 8: Xây dựng hoàn chỉnh ứng dụng web 20 20 Ngành lập trình - CSDL • Giới thiệu  Skins: - Có 2 loại skin: Themes và Skins Ví dụ: khai báo trong tập tin .skin //defaut skin //named skin Bài 8: Xây dựng hoàn chỉnh ứng dụng web 21 21 Ngành lập trình - CSDL • Tạo Themes − Thao tác Themes và Skins Minh họa Bài 8: Xây dựng hoàn chỉnh ứng dụng web 22 22 Ngành lập trình - CSDL • Tạo Themes − Tổ chức thư mục lưu trữ Themes và Skins Minh họa Ứng dụng có 3 Themes Bài 8: Xây dựng hoàn chỉnh ứng dụng web 23 23 Ngành lập trình - CSDL • Sử dụng Themes − Cấp ứng dụng: áp dụng cho tất cả các trang. Khai báo trong tập tin Web.config Themes và Skins Ví dụ: Bài 8: Xây dựng hoàn chỉnh ứng dụng web 24 24 Ngành lập trình - CSDL • Sử dụng Themes − Cấp trang – page Themes: áp dụng cho một trang cụ thể. Khai báo trong tag định hướng của trang .aspx • Cú pháp này làm thay đổi định dạng riêng của điều khiển Themes và Skins Ví dụ: Bài 8: Xây dựng hoàn chỉnh ứng dụng web 25 25 Ngành lập trình - CSDL • Sử dụng Themes − Cấp trang – page Themes: áp dụng cho một trang cụ thể. Khai báo trong tag định hướng của trang .aspx • Cú pháp này không làm thay đổi định dạng riêng của điều khiển Themes và Skins Ví dụ: Minh họa Bài 8: Xây dựng hoàn chỉnh ứng dụng web 26 26 Ngành lập trình - CSDL • Sử dụng Themes − Hủy bỏ Themes: • Muốn huỷ bỏ Themes ở cấp ứng dụng cho một trang cụ thể, ta sử dụng thuộc tính EnableTheming trong • Muốn hủy bỏ Themes cho riêng một điều khiển, ta khai báo thuộc tính EnableTheming là false Themes và Skins Bài 8: Xây dựng hoàn chỉnh ứng dụng web 27 27 Ngành lập trình - CSDL • Sử dụng Themes − Khai báo skin cụ thể cho một điều khiển: • Muốn xác định skin cụ thể (không sử dụng skin mặc định của Themes hiện hành), ta khai báo thuộc tính SkinId Themes và Skins Bài 8: Xây dựng hoàn chỉnh ứng dụng web 28 28 Ngành lập trình - CSDL • Themes động – Dynamic Themes − Sử dụng sự kiện Page_PreInit của trang − Thay đổi Themes: Themes và Skins protected void Page_PreInit( ) { Page.Theme = “tên Theme"; } Bài 8: Xây dựng hoàn chỉnh ứng dụng web 29 29 Ngành lập trình - CSDL • Themes động – Dynamic Themes − Thay đổi SkinId của Theme hiện hành: Themes và Skins protected void Page_PreInit( ) { .SkinID = “gía trị SkinId”; } Ví dụ: thay đổi skin của TreeView Caythucdon, tên skin là giá trị được chọn từ DropDownList1 protected void Page_PreInit( .) { Caythucdon.SkinID = Request.Form["DropDownList1“] ; } Bài 8: Xây dựng hoàn chỉnh ứng dụng web 30 30 Ngành lập trình - CSDL Nội dung 1. Master Page 2. Themes và Skin 3. Site Navigation Controls 31 31 Ngành lập trình - CSDL Site Navigation Controls • Giới thiệu • Sử dụng các Navigation Controls: Menu, TreeView và SiteMapPath • Điều khiển SiteMapDataSource    32 32 Ngành lập trình - CSDL • Giới thiệu − Dùng để chuyển đến (navigate) một trang web khác và thể hiện cấu trúc logic của Web site (site map) − Gồm các điều khiển: Menu, TreeView, SiteMapPath kết hợp với SiteMapDataSource − Các điều khiển này thường được sử dụng trong trang Master Site Navigation Controls Bài 8: Xây dựng hoàn chỉnh ứng dụng web 33 33 Ngành lập trình - CSDL • Menu − Dùng để thể hiện thực đơn và cho phép người dùng chuyển đến một trang web khác khi chọn một chức năng − Thao tác tạo: chọn thuộc tính • Items: khai báo các chức năng trên thực đơn Site Navigation Controls Bài 8: Xây dựng hoàn chỉnh ứng dụng web 34 34 Ngành lập trình - CSDL • Menu − Thao tác tạo: Site Navigation Controls Minh họa Bài 8: Xây dựng hoàn chỉnh ứng dụng web 35 35 Ngành lập trình - CSDL • TreeView − Dùng để thể hiện thực đơn có dạng cây và cho phép người dùng chuyển đến một trang web khác khi chọn một node − Thao tác tạo: chọn thuộc tính • Nodes: khai báo các chức năng trên thực đơn Site Navigation Controls Bài 8: Xây dựng hoàn chỉnh ứng dụng web 36 36 Ngành lập trình - CSDL • TreeView − Thao tác tạo: Site Navigation Controls Minh họa Bài 8: Xây dựng hoàn chỉnh ứng dụng web 37 37 Ngành lập trình - CSDL • SiteMapPath − Dùng để thể hiện cấu trúc logic của website và cho phép người dùng chuyển đến một trang web khác − Nội dung cấu trúc của website mặc định được chứa trong tập tin Web.sitemap − Nếu nội dung cấu trúc nằm trong tập tin ???.sitemap (không phải Web.sitemap), thì phải định nghĩa SiteMapProvider trong tập tin Web.config Site Navigation Controls Bài 8: Xây dựng hoàn chỉnh ứng dụng web 38 38 Ngành lập trình - CSDL • SiteMapPath − Các bước tạo: • Bước 1: tạo tập tin Web.sitemap Site Navigation Controls Bài 8: Xây dựng hoàn chỉnh ứng dụng web 39 39 Ngành lập trình - CSDL • SiteMapPath Site Navigation Controls Minh họa Lưu ý: chỉ được phép có một siteMapNode gốc Bài 8: Xây dựng hoàn chỉnh ứng dụng web 40 40 Ngành lập trình - CSDL • SiteMapPath − Các bước tạo: Bước 2 và 3 chỉ dành cho tập tin ???.sitemap (khác Web.sitemap) • Bước 2: khai báo SiteMapProvider trong tập tin Web.config Site Navigation Controls Minh họa Bài 8: Xây dựng hoàn chỉnh ứng dụng web 41 41 Ngành lập trình - CSDL • SiteMapPath − Các bước tạo: • Bước 3: tạo điều khiển SiteMapPath, khai báo thuộc tính SiteMapProvider là “tên SiteMapProvider” đã khai báo trong tập Web.config Site Navigation Controls Minh họa Bài 8: Xây dựng hoàn chỉnh ứng dụng web 42 42 Ngành lập trình - CSDL • SiteMapDataSource − Dùng để chứa nguồn dữ liệu được lưu trữ trong tập tin .sitemap − Nguồn dữ liệu mặc định là tập tin Web.sitemap − Thường sử dụng kết hợp với các điều khiển Menu và TreeView Site Navigation Controls Bài 8: Xây dựng hoàn chỉnh ứng dụng web 43 43 Ngành lập trình - CSDL • SiteMapDataSource − Các thuộc tính: • SiteMapProvider: tên SiteMapProvider đã khai báo trong tập tin Web.config. Nếu nguồn là Web.sitemap thì không không cần khai báo thuộc tính này • ShowStartingNode(True/False): bắt đầu bằng siteMapNode gốc hay không • SiteMapProvider: tên SiteMapProvider • StartingNodeUrl: địa chỉ URL cho node bắt đầu Site Navigation Controls Minh họa Bài 8: Xây dựng hoàn chỉnh ứng dụng web 44 44 Ngành lập trình - CSDL • SiteMapDataSource − Liên kết với Menu và TreeView: • Sử dụng thuộc tính DataSourceID của 2 điều khiển trên, giá trị của thuộc tính là ID của SiteMapDataSource Site Navigation Controls Minh họa Bài 8: Xây dựng hoàn chỉnh ứng dụng web 45 45 Ngành lập trình - CSDL HẾT Bài 8: Xây dựng hoàn chỉnh ứng dụng web 1 1 Ngành lập trình - CSDL 2 2 Ngành lập trình - CSDL Mục tiêu • Hiểu được cơ chế bảo mật Web site • Sử dụng 2 điều khiển trong nhóm Login 3 3 Ngành lập trình - CSDL Nội dung 1. Tổng quan về aspnetdb Database 2. Các nguyên tắc bảo mật của ASP.NET 3. Giới thiệu công cụ WAT 4. Tạo trang Đăng nhập 5. Tạo trang Đổi mật khẩu 6. Profiles 4 4 Ngành lập trình - CSDL Tổng quan về aspnetdb Database • Giới thiệu • Tạo aspnetdb Database   5 5 Ngành lập trình - CSDL • Giới thiệu − CSDL aspnetdb dùng để quản lý các user profiles, roles, membership và các thông tin cá nhân khác − Áp dụng cho ASP.Net 2.0 Web Application − Không được tạo ra khi cài đặt SQL Server 2005 Enterprise/ Express Edition − Được tạo tự động khi sử dụng công cụ WAT và lưu trữ trong thư mục App_Data Bài 9: Bảo mật Website Tổng quan về aspnetdb Database 6 6 Ngành lập trình - CSDL • Tạo aspnetdb Database − Tạo thủ công: • Start  Programs  Microsoft Visual Studio 2005  Visual Studio Tools  Visual Studio 2005 Command Prompt • Gõ lệnh aspnetdb_regsql Bài 9: Bảo mật Website Tổng quan về aspnetdb Database Minh họa 7 7 Ngành lập trình - CSDL Nội dung 1. Tổng quan về Database aspnetdb 2. Các nguyên tắc bảo mật của ASP.Net 3. Giới thiệu công cụ WAT 4. Tạo trang Đăng nhập 5. Tạo trang Đổi mật khẩu 6. Profiles 8 8 Ngành lập trình - CSDL Các nguyên tắc bảo mật của ASP.Net • Các khái niệm bảo mật • Mô hình bảo mật ASP.NET • Các chiến lượt bảo mật • Chứng thực website     9 9 Ngành lập trình - CSDL • Các khái niệm bảo mật − Authentication: xác định user là ai − Authorization: xác định quyền hạn của user − Impersonation: là option tùy chọn, dùng Code để xử lý giới hạn truy xuất Bài 9: Bảo mật Website Các nguyên tắc bảo mật 10 10 Ngành lập trình - CSDL • Mô hình bảo mật ASP.Net − IIS xác thực người dùng − Nếu thành công, nó chuyển yêu cầu đến ASP.Net với thông tin đã được chứng thực − Nếu ASP.Net xác thực thành công, nó cho phép gởi yêu cầu đến các trang .aspx hoặc web services, − Khi ASP.Net Code yêu cầu tài nguyên (mở file hoặc connect đến CSDL), hệ điều hành sẽ tiến hành kiểm tra Bài 9: Bảo mật Website Các nguyên tắc bảo mật 11 11 Ngành lập trình - CSDL Web Clients Giả sử đã Impersonated Truy xuất được phép Sử dụng tài khoản được cấu hình Truy xuất bị từ chối Có chấp nhận địa chỉ IP và Domain ? No Yes IIS xác thực thành công ? No Yes IIS ASP.Net Asp.Net xác thực thành công ? No Yes Có khai báo Impersonation ? No Yes Cho phép các tài nguyên khác ? No Yes 12 12 Ngành lập trình - CSDL • Các chiến lượt bảo mật 1. Cho phép các user nặc danh (anonymous users) nhưng sử dụng chứng thực forms để bảo mật từng phần trong Website. Nếu có user đăng nhập thì nó sẽ tiến hành xác thực user đó 2. Cấm các user nặc danh và sử dụng chứng thực của IIS để bắt buộc user đăng nhập theo chứng thực Windows, Basic hoặc Digest (yêu cầu user có account trên server)  Thích hợp với mạng Intranet Bài 9: Bảo mật Website Các nguyên tắc bảo mật 13 13 Ngành lập trình - CSDL • Chứng thực website − Windows Authentication: • IIS sẽ xác thực user dựa trên Windows account • Ưu điểm: trong suốt với người dùng, và có thể dùng code để kiểm tra thông tin tài khoản Bài 9: Bảo mật Website Các nguyên tắc bảo mật 14 14 Ngành lập trình - CSDL • Chứng thực website − Windows Authentication: • Khai báo:  Cài đặt chế độ chứng thực là Windows trong tập tin Web.config  Tắt quyền truy xuất user nặc danh (trong IIS hoặc trong tập tin Web.config)  Cấu hình Windows account trên Web server (nếu chưa có ) Bài 9: Bảo mật Website Các nguyên tắc bảo mật 15 15 Ngành lập trình - CSDL • Chứng thực website − Windows Authentication: • Khai báo: minh hoạ khai báo chứng thực Bài 9: Bảo mật Website Các nguyên tắc bảo mật Minh họa 16 16 Ngành lập trình - CSDL • Chứng thực website − Windows Authentication: • Khai báo: minh hoạ cấp quyền  Khai báo trong tập tin Web.config  Hoặc, trong IIS: chọn thư mục ảo, nhấn phím phải chuột  chọn Properties Bài 9: Bảo mật Website Các nguyên tắc bảo mật Minh họa 17 17 Ngành lập trình - CSDL Bài 9: Bảo mật Website Các nguyên tắc bảo mật 18 18 Ngành lập trình - CSDL • Chứng thực website − Forms Authentication: • Xác thực user dựa trên CSDL aspnetdb • Khai báo:  Cài đặt chế độ chứng thực là Forms trong tập tin Web.config  Giới hạn quyền truy xuất tập tin/thư mục của các user nặc danh  Tạo trang Đăng nhập - Login Bài 9: Bảo mật Website Các nguyên tắc bảo mật 19 19 Ngành lập trình - CSDL Nội dung 1. Tổng quan về Database aspnetdb 2. Các qui định bảo mật 3. Giới thiệu công cụ WAT 4. Tạo trang Đăng nhập 5. Tạo trang Đổi mật khẩu 6. Profiles 20 20 Ngành lập trình - CSDL Giới thiệu công cụ WAT • Giới thiệu • Tạo User và Role • Cấp quyền truy xuất thư mục, tập tin cho User, Role    21 21 Ngành lập trình - CSDL • Giới thiệu − WAT – Website Administration Tool – dùng để xem và cấu hình website − Các thao tác trên WAT sẽ làm thay đổi tập tin Web.config − Thao tác: trên thực đơn, chọn Website  ASP.NET Configuration Bài 9: Bảo mật Website Giới thiệu công cụ WAT 22 22 Ngành lập trình - CSDL • Tạo User và Role • Cấp quyền truy xuất thư mục, tập tin cho user và Role Bài 9: Bảo mật Website Giới thiệu công cụ WAT Minh họa 23 23 Ngành lập trình - CSDL Nội dung 1. Tổng quan về Database aspnetdb 2. Các qui định bảo mật 3. Giới thiệu công cụ WAT 4. Tạo trang Đăng nhập 5. Tạo trang Đổi mật khẩu 6. Profiles 24 24 Ngành lập trình - CSDL Tạo trang Đăng nhập • Giới thiệu và thao tác tạo • Giới thiệu điều khiển Login   25 25 Ngành lập trình - CSDL • Giới thiệu và thao tác tạo − Áp dụng cho Forms Authentication − Dùng để chứng thực người dùng (kiểm tra userName và password) − Khai báo trong tập Web.config: Bài 9: Bảo mật Website Tạo trang Đăng nhập 26 26 Ngành lập trình - CSDL • Giới thiệu và thao tác tạo − Cấp quyền truy xuất các tập tin/thư mục: dùng WAT hoặc cập nhật trực tiếp Web.config − Tạo trang Login.aspx tại thư mục gốc của ứng dụng • Dùng điều khiển Login thiết kế chức năng đăng nhập Bài 9: Bảo mật Website Tạo trang Đăng nhập Minh họa 27 27 Ngành lập trình - CSDL • Điều khiển Login − Kết hợp với điều khiển Validator để kiểm tra ô nhập user name và password − Tự động kiểm tra thông tin đăng nhập − Nếu chọn thì thông tin đăng nhập đựơc lưu trữ xuống cookie − Nếu đăng nhập thành công thì mặc định chuyển đến trang Default.aspx ở thư mục gốc Bài 9: Bảo mật Website Tạo trang Đăng nhập 28 28 Ngành lập trình - CSDL • Điều khiển Login − Thuộc tính: đa số dùng để thay đổi giao diện của điều khiển Bài 9: Bảo mật Website Tạo trang Đăng nhập Minh họa 29 29 Ngành lập trình - CSDL • Điều khiển Login − Sự kiện • LoggingIn : xảy ra trước khi user được xác thực • LoggedIn : sau khi user được xác thực • LoginError : khi đăng nhập không thành công • Authenticate : chủ động xác thực user tùy theo code đựơc viết, điều khiển không tự động thực hiện Bài 9: Bảo mật Website Tạo trang Đăng nhập Minh họa 30 30 Ngành lập trình - CSDL • Tạo nút Sign Out: − Sử dụng lớp FormsAuthentication và phương thức SignOut Bài 9: Bảo mật Website Tạo trang Đăng nhập Minh họa 31 31 Ngành lập trình - CSDL • Xem thông tin user: − Sử dụng thuộc tính User.Identity của Page • Name: tên user • AuthenticationType: kiểu chứng thực • IsAuthenticated: đã được chứng thực chưa − Phương thức User.IsInRole(“Tên Role”): kiểm tra user có trong role không Bài 9: Bảo mật Website Tạo trang Đăng nhập Minh họa 32 32 Ngành lập trình - CSDL Nội dung 1. Tổng quan về Database aspnetdb 2. Các qui định bảo mật 3. Giới thiệu công cụ WAT 4. Tạo trang Đăng nhập 5. Tạo trang Đổi mật khẩu 6. Profiles 33 33 Ngành lập trình - CSDL Tạo trang Đổi mật khẩu • Giới thiệu • Giới thiệu điều khiển ChangePassword   34 34 Ngành lập trình - CSDL • Giới thiệu − Áp dụng cho Forms Authentication − Dùng để thay đổi mật khẩu − Sử dụng điều khiển ChangePassword Bài 9: Bảo mật Website Tạo trang Đổi mật khẩu 35 35 Ngành lập trình - CSDL • Điều khiển ChangePassword − Các thuộc tính và sự kiện tương tự điều khiển Login Bài 9: Bảo mật Website Tạo trang Đổi mật khẩu 36 36 Ngành lập trình - CSDL Nội dung 1. Tổng quan về Database aspnetdb 2. Các qui định bảo mật 3. Giới thiệu công cụ WAT 4. Tạo trang Đăng nhập 5. Tạo trang Đổi mật khẩu 6. Profiles 37 37 Ngành lập trình - CSDL Profiles • Giới thiệu • Khai báo Profiles • Sử dụng Profile    38 38 Ngành lập trình - CSDL • Giới thiệu − Cho phép lưu trữ dữ liệu cụ thể của người dùng đã đựơc chứng thực − Tương tự Session, chỉ khác là dữ liệu profile không bị mất đi khi Session hết hạn − Thuộc namespace System.Web.Profile Bài 9: Bảo mật Website Profiles 39 39 Ngành lập trình - CSDL • Khai báo Profiles − Khai báo các thuộc tính cần lưu trữ trong Web.config Bài 9: Bảo mật Website Profiles User_Name,FullName, Birthday là thông tin lưu trữ 40 40 Ngành lập trình - CSDL • Sử dụng Profiles − Truy xuất thuộc tính − Cập nhật thuộc tính vào table Profile Bài 9: Bảo mật Website Profiles Profile. Profile. Save(); 41 41 Ngành lập trình - CSDL • Sử dụng Profiles Bài 9: Bảo mật Website Profiles Ví dụ: cập nhật Profile.User_Name = User_name.Text; Profile.FullName = Full_name.Text; Profile.Birthday = DateTime.Parse(Birth_day.Text); Profile.Save(); 42 42 Ngành lập trình - CSDL • Sử dụng Profiles − Xem danh sách Profile Bài 9: Bảo mật Website Profiles ProfileManager.GetAllProfiles(ProfileAuthenticationOption.All) Ví dụ: .DataSource =ProfileManager.GetAllProfiles(ProfileAuthenticationOption.All); .DataBind(); 43 43 Ngành lập trình - CSDL HẾT Bài 9: Bảo mật Website 1 1 Ngành lập trình - CSDL 2 2 Ngành lập trình - CSDL Mục tiêu • Hiểu được các yêu cầu cần triển khai • Triển khai một ứng dụng Web 3 3 Ngành lập trình - CSDL Nội dung 1. Internet Information Services - IIS 2. Các phương pháp triển khai ứng dụng web 4 4 Ngành lập trình - CSDL Internet Information Services - IIS • Giới thiệu • Cài đặt • Cấu hình • Tạo ứng dụng Web trên IIS     5 5 Ngành lập trình - CSDL • Giới thiệu − Là phần mềm Web server của Miscrosoft dành cho hệ điều hành Windows − Tập hợp các dịch vụ sử dụng trên Internet (trong đó có HTTP, FTP, SMTP, ) Bài 10: Triển khai ứng dụng Web Internet Information Services 6 6 Ngành lập trình - CSDL • Cài đặt IIS − Kiểm tra máy đã được cài đặt IIS − Cài đặt Bài 10: Triển khai ứng dụng Web Internet Information Services 7 7 Ngành lập trình - CSDL • Cấu hình IIS − Vào Control Panel chọn Administrator Tool  chọn Internet Information Services Bài 10: Triển khai ứng dụng Web Internet Information Services 8 8 Ngành lập trình - CSDL • Tạo ứng dụng Web trên IIS − Có 2 cách:  Đặt thư mục ứng dụng trong thư mục wwwroot  Tạo thư mục ảo (Virtual Directory), ánh xạ đến thư mục ứng dụng Bài 10: Triển khai ứng dụng Web Internet Information Services 9 9 Ngành lập trình - CSDL Nội dung 1. Internet Information Services - IIS 2. Các phương pháp triển khai ứng dụng web 10 10 Ngành lập trình - CSDL Các phương pháp triển khai ứng dụng Web • Sử dụng chức năng Publish Web site • Sử dụng công cụ Web Deployment Setup   11 11 Ngành lập trình - CSDL • Chức năng Publish Web Site − Biên dịch ứng dụng và copy website đến thư mục cụ thể − Các tập tin code behind đã được biên dịch thành .dll nên không được copy Bài 10: Triển khai ứng dụng Web Các phương pháp triển khai 12 12 Ngành lập trình - CSDL • Chức năng Publish Web Site − Thao tác • Nhấn phím phải chuột vào project, chọn Publish Web Site Bài 10: Triển khai ứng dụng Web Các phương pháp triển khai Minh họa 13 13 Ngành lập trình - CSDL • Chức năng Publish Web Site − Thao tác • Khai báo đường dẫn thư mục chứa website đựơc triển khai Bài 10: Triển khai ứng dụng Web Các phương pháp triển khai 14 14 Ngành lập trình - CSDL • Chức năng Publish Web Site − Thao tác • Mở cửa sổ Explorer, ta nhìn thấy thư mục được tạo Bài 10: Triển khai ứng dụng Web Các phương pháp triển khai 15 15 Ngành lập trình - CSDL • Chức năng Publish Web Site − Thao tác • Vào IIS tạo thư mục ảo ánh xạ đến thư mục vừa tạo • Sau đó test thử website này: • Nếu có thay đổi code hoặc giao diện thì ta phải chọn lại chức năng Publish Web Site − Sử dụng thư mục vừa tạo (Minh_hoa_deploy) để publish lên internet Bài 10: Triển khai ứng dụng Web Các phương pháp triển khai 16 16 Ngành lập trình - CSDL • Công cụ Web Deployment Setup − Tương tự như Publish Web site − Phải cài đặt sau khi đã cài VS 2005 Bài 10: Triển khai ứng dụng Web Các phương pháp triển khai Minh họa 17 17 Ngành lập trình - CSDL HẾT Bài 10: Triển khai ứng dụng Web 1 1 Ngành lập trình - CSDL 2 2 Ngành lập trình - CSDL Mục tiêu • Tìm hiểu về Ajax và cơ chế hoạt động của Ajax • Sử dụng Ajax mà không cài đặt thêm thư viện • Sử dụng Ajax với thư viện AJAX ASP.NET Framework của Microsoft. 3 3 Ngành lập trình - CSDL Nội dung 1. Giới thiệu tổng quan 2. Sự hoạt động của Ajax 3. Dùng Ajax với đối tượng XmlHttpRequest 4. Dùng Ajax với thư viện AJAX ASP.NET 4 4 Ngành lập trình - CSDL Giới thiệu tổng quan • Ajax là gì ? • Các đặc điểm của Ajax   5 5 Ngành lập trình - CSDL • Ajax là gì? − AJAX (Asynchronous JavaScript and XML" - nghĩa là "JavaScript và XML không đồng bộ") là một nhóm các công nghệ phát triển web được sử dụng để tạo các ứng dụng web động hay các ứng dụng giàu tính Internet (rich Internet application). Bài 11: Giới thiệu và sử dụng Ajax Giới thiệu tổng quan 6 6 Ngành lập trình - CSDL • Ajax là gì? − Ajax là một kỹ thuật phát triển web có tính tương tác cao bằng cách kết hợp các ngôn ngữ: • HTML (hoặc XHTML) với CSS trong việc hiển thị thông tin • Mô hình DOM (Document Object Model), được thực hiện thông qua JavaScript, nhằm hiển thị thông tin động và tương tác với những thông tin được hiển thị • Đối tượng XMLHttpRequest để trao đổi dữ liệu một cách không đồng bộ với máy chủ web. • XML thường là định dạng cho dữ liệu truyền, mặc dầu bất cứ định dạng nào cũng có thể dùng, bao gồm HTML định dạng trước, văn bản thuần (plain text), JSON. Bài 11: Giới thiệu và sử dụng Ajax Giới thiệu tổng quan 7 7 Ngành lập trình - CSDL • Các đặc điểm của Ajax − Ưu điểm • Trang web có thể cập nhật nội dung cần thiết mà không phải nạp lại toàn bộ trang web • Trang web được hiển thị nhanh hơn vì lượng dữ liệu trao đổi giữa máy chủ và trình duyệt web giảm đi rất nhiều Bài 11: Giới thiệu và sử dụng Ajax Giới thiệu tổng quan 8 8 Ngành lập trình - CSDL • Các đặc điểm của Ajax − Khuyết điểm • Các chức năng Back, Bookmark của trình duyệt hoạt động không đúng • Để xem được các trang web ajax thì trình duyệt phải hỗ trợ javascript. • Mở ra một các thức khác cho việc tấn công của các đoạn mã độc mà những nhà phát triển web có thể không kiểm thử hết được. Bài 11: Giới thiệu và sử dụng Ajax Giới thiệu tổng quan 9 9 Ngành lập trình - CSDL Nội dung 1. Giới thiệu tổng quan 2. Sự hoạt động của Ajax 3. Dùng Ajax với đối tượng XmlHttpRequest 4. Dùng Ajax với thư viện AJAX ASP.NET 10 10 Ngành lập trình - CSDL Sự họat động của Ajax • Mô hình họat động của Ajax • So sánh Web Application và Ajax Web Application   11 11 Ngành lập trình - CSDL • Mô hình hoạt động − Việc xử lý thông tin được thực hiện trên máy khách (Client) thay vì máy phục vụ (Server) như cách truyền thống − Máy chủ chỉ làm một việc đơn giản là nhận thông tin từ máy khách và trả các dữ liệu về cho máy khách − Máy khách xử lý sơ bộ thông tin của người dùng nhập vào, sau đó chuyển về máy chủ rồi nhận dữ liệu từ máy chủ và xử lý để hiển thị cho người dùng Bài 11: Giới thiệu và sử dụng Ajax Sự hoạt động của Ajax 12 12 Ngành lập trình - CSDL Trang web Máy khách Ajax Engine Máy chủ web Máy chủ CSDL Phía máy chủ Javascript HTML + CSS HTTP request XML Data 13 13 Ngành lập trình - CSDL Máy chủ Trang web Máy khách Ajax Engine Hoạt động người dùng Hệ thống xử lý Máy khách Máy chủ Hoạt động người dùng Hệ thống xử lý Xử lý đồng bộ Xử lý bất đồng bộ 14 14 Ngành lập trình - CSDL • So sánh với các ứng dụng web truyền thống − Các ứng dụng Ajax phần lớn trông giống như thể chúng được đặt trên máy của người sử dụng hơn là được đặt trên một máy phục vụ thông qua Internet. Lý do: các trang được cập nhật nhưng không nạp lại toàn bộ − Các ứng dụng truyền thống về bản chất là gửi dữ liệu từ các form, được nhập bởi người sử dụng, tới một máy phục vụ web. Máy phục vụ web sẽ trả lời bằng việc gửi về một trang web mới Bài 11: Giới thiệu và sử dụng Ajax Sự họat động của Ajax 15 15 Ngành lập trình - CSDL So sánh ứng dụng web truyền thống (trái) với AJAX Trang web Trình duyệt Máy chủ Web Máy chủ CSDL Phía máy chủ H TT P R eq ue st H TM L + C SS Trang web Trình duyệt Ajax Engine Máy chủ web Máy chủ CSDL Phía máy chủ Javascript HTML + CSS HTTP request XML Data 16 16 Ngành lập trình - CSDL • So sánh với các ứng dụng web truyền thống − Mặt khác, các ứng dụng Ajax có thể gửi các yêu cầu tới máy phục vụ web để nhận về chỉ những dữ liệu cần thiết. Kết quả là trang web được hiển thị nhanh hơn vì lượng dữ liệu trao đổi giữa máy chủ và trình duyệt web giảm đi rất nhiều. Thời gian xử lý của máy chủ web cũng vì thế mà được giảm theo vì phần lớn thời gian xử lý được thực hiện trên máy khách của người dùng Bài 11: Giới thiệu và sử dụng Ajax Sự họat động của Ajax 17 17 Ngành lập trình - CSDL • Website nước ngoài: − Flickr ( website chia sẽ hình ảnh − Gmail ( − Google Local (trước đây Google Maps) : − Windows Live : Bài 11: Giới thiệu và sử dụng Ajax Các website sử dụng Ajax 18 18 Ngành lập trình - CSDL • Ajax của người Việt: − Địa danh Việt Nam: ( ) Website với trên 48000 địa danh Việt Nam. Sử dụng công nghệ AJAX và Google Maps API − Thắng Cảnh Đẹp [ ]: sử dụng 100% AJAX, kết hợp với Google MAP API − Music Online [ ]: sử dụng 99% AJAX + khắc phục được 1 số nhược điểm của Ajax Bài 11: Giới thiệu và sử dụng Ajax Các website sử dụng Ajax 19 19 Ngành lập trình - CSDL Nội dung 1. Giới thiệu tổng quan 2. Sự hoạt động của Ajax 3. Dùng Ajax với đối tượng XmlHttpRequest 4. Dùng Ajax với thư viện AJAX ASP.NET 20 20 Ngành lập trình - CSDL Dùng Ajax với đối tượng XmlHttpRequest • Giới thiệu • Các bước thực hiện   21 21 Ngành lập trình - CSDL • Giới thiệu − XmlHttpRequest là lớp thư viện của javascript − XmlHttpRequest được dùng để yêu cầu (Http request) về Web Server và nhận phản hồi (Response) từ Web Server − Dữ liệu phản hồi từ Web Server là xml hoặc text Bài 11: Giới thiệu và sử dụng Ajax Dùng Ajax với đối tượng XmlHttprequest 22 22 Ngành lập trình - CSDL • Các bước thực hiện: − Bước 1: Khởi tạo đối tượng XmlHttpRequest − Bước 2: Gán giá trị cho đối tượng XmlHttpRequest và gửi về Web Server − Bước 3: Nhận phản hồi từ Web Server và xử lý kết quả nhận được − Bước 4: Viết xử lý ở Web Server Bài 11: Giới thiệu và sử dụng Ajax Dùng Ajax với đối tượng XmlHttprequest 23 23 Ngành lập trình - CSDL • Các bước thực hiện: − Bước 1: Khởi tạo đối tượng XmlHttpRequest //Biến toàn cục dùng để tham chiếu đến đối tượng XmlHttpRequest var xmlHttp = null; //Phương thức tạo đối tượng XmlHttpRequest function createXmlHttpReques() { var kq; try{ kq = new XMLHttpRequest(); } catch(e){ //IE6 hoặc cũ hơn kq = new ActiveXObject("Microsoft.XMLHttp"); } } Bài 11: Giới thiệu và sử dụng Ajax Dùng Ajax với đối tượng XmlHttprequest 24 24 Ngành lập trình - CSDL • Các bước thực hiện: − Bước 2: Gán giá trị cho đối tượng XmlHttpRequest và gửi về Web Server. Có 2 phương thức để gửi yêu cầu: GET và POST //Gửi bằng phương thức GET var request = "XuatLoiChao.aspx?hoten=" + hoten; xmlHttp.open("GET", request, true); //Tham chiếu đến hàm xử lý kết quả trả về xmlHttp.onreadystatechange = HienThiLoiChao; //Gửi yêu cầu về Server xmlHttp.send(null); Bài 11: Giới thiệu và sử dụng Ajax Dùng Ajax với đối tượng XmlHttprequest 25 25 Ngành lập trình - CSDL • Các bước thực hiện: − Bước 2: Gán giá trị cho đối tượng XmlHttpRequest và gửi về Web Server. Có 2 phương thức để gửi yêu cầu: GET và POST //Gửi bằng phương thức POST var request = "XuatLoiChao.aspx"; xmlHttp.open("POST", request, true); //Tham chiếu đến hàm xử lý kết quả trả về xmlHttp.onreadystatechange = HienThiLoiChao; //Gửi bằng phương thức POST phải gán Header cho Request xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); //Gửi yêu cầu về Server xmlHttp.send("hoten=" + hoten); Bài 11: Giới thiệu và sử dụng Ajax Dùng Ajax với đối tượng XmlHttprequest 26 26 Ngành lập trình - CSDL • Các bước thực hiện: − Bước 3: Nhận phản hồi từ Web Server và xử lý kết quả nhận được function HienThiLoiChao() { if (xmlHttp.readyState == 4) { if (xmlHttp.status == 200) { //nhận kết quả trả về var loi_chao = xmlHttp.responseText; //Truy xuất đến vùng để hiển thị lời chào var divLoiChao = document.getElementById("divLoiChao"); //Hiển thị divLoiChao.innerHTML = loi_chao; } } } Nếu kết quả trả về là Text  responseText Nếu kết quả trả về là Xml  responseXml Bài 11: Giới thiệu và sử dụng Ajax Dùng Ajax với đối tượng XmlHttprequest 27 27 Ngành lập trình - CSDL • Các bước thực hiện: − Bước 4: Viết xử lý ở Web Server protected void Page_Load(object sender, EventArgs e) { //Lấy họ tên mà Client gửi tới string hoten = Request["hoten"]; //Tạo lời chào string loi_chao = string.Format("Chào bạn {0}!", hoten); //Gửi lời chào về Client Response.Write(loi_chao); //Kết thúc việc gửi dữ liệu về Client //Nếu không có dòng này thì nó sẽ gửi luôn phần html trong trang aspx Response.End(); } Kết quả trả về dạng Xml: string.Format(“Chào bạn {0}!", hoten); Bài 11: Giới thiệu và sử dụng Ajax Dùng Ajax với đối tượng XmlHttprequest 28 28 Ngành lập trình - CSDL Nội dung 1. Giới thiệu tổng quan 2. Sự hoạt động của Ajax 3. Dùng Ajax với đối tượng XmlHttpRequest 4. Dùng Ajax với thư viện AJAX ASP.NET 29 29 Ngành lập trình - CSDL ASP.NET AJAX Framework • Giới thiệu • Cài đặt • Cấu hình cho các website cũ • Các control trong ASP.NET AJAX     30 30 Ngành lập trình - CSDL • Giới thiệu − ASP.NET AJAX Framework là thư viện hỗ trợ lập trình Ajax cho ASP.NET của Microsoft − ASP.NET AJAX giúp các ứng dụng ASP.NET hoạt động theo cơ chế AJAX với cách lập trình không thay đổi (toàn bộ xử lý ở Server) − Ngoài ra, ASP.NET AJAX còn cung cấp các file script giúp chúng ta lập trình ở Client mà không phụ thuộc vào bất kỳ ngôn ngữ xử lý ở Server nào (ta có thể dùng PHP, ASP.NET, JSP, để xử lý ở Server) Bài 11: Giới thiệu và sử dụng Ajax ASP.Net Ajax Framework 31 31 Ngành lập trình - CSDL • Cài đặt − Download gói cài đặt ASP.NET AJAX tại địa chỉ Bài 11: Giới thiệu và sử dụng Ajax ASP.Net Ajax Framework 32 32 Ngành lập trình - CSDL • Cấu hình cho các website cũ − Để sử dụng được tính năng của ASP.NET Ajax trong các website project cũ (không được tạo bằng template ASP.NET AJAX) thì ta phải cấu hình cho các website này − Mở file web.config mẫu của ASP.NET AJAX, file này nằm ở đường dẫn: C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.nnnn Bài 11: Giới thiệu và sử dụng Ajax ASP.Net Ajax Framework 33 33 Ngành lập trình - CSDL • Cấu hình cho các website cũ − Lần lượt thêm các phần chưa có từ file web.config mẫu vào file web.config của website: • element • element • element • element • element • element • element Bài 11: Giới thiệu và sử dụng Ajax ASP.Net Ajax Framework 34 34 Ngành lập trình - CSDL • Các control trong ASP.NET AJAX − ScriptManager − UpdatePanel − UpdateProgress − Timer Bài 11: Giới thiệu và sử dụng Ajax ASP.Net Ajax Framework 35 35 Ngành lập trình - CSDL • Các control trong ASP.NET AJAX − ScriptManager: • Dùng để quản lý các client script (javascript) cho các trang ASP.NET AJAX • Bắt buộc phải có trong các trang ASP.NET AJAX Bài 11: Giới thiệu và sử dụng Ajax ASP.Net Ajax Framework 36 36 Ngành lập trình - CSDL • Các control trong ASP.NET AJAX − UpdatePanel: • UpdatePanel dùng để cập nhật nội dung nằm trong nó mà không phải load lại toàn bộ trang web • Trong 1 trang web ASP.NET AJAX, có thể có nhiều UpdatePanel control. Ta có thể kiểm soát việc các UpdatePanel cập nhật nội dung cho các vùng nằm bên trong các UpdatePanel Bài 11: Giới thiệu và sử dụng Ajax ASP.Net Ajax Framework 37 37 Ngành lập trình - CSDL • Các control trong ASP.NET AJAX − Update Panel: • ChildrenAsTrigger (Boolean): nếu = true thì khi các control nằm bên trong UpdatePanel có xảy ra PostBack thì UpdatePanel sẽ cập nhật lại nội dung nằm trong nó • UpdateMode: Always: luôn luôn cập nhật nội dung của UpdatePanel Conditional: Cập nhật UpdatePanel có điều kiện. Bài 11: Giới thiệu và sử dụng Ajax ASP.Net Ajax Framework 38 38 Ngành lập trình - CSDL • Các control trong ASP.NET AJAX − Update Panel: • Ví dụ: Tìm kiếm thông tin học viên Ta sẽ thiết kế giao diện như sau: UpdatePanel1: -ChildrenAsTrigger = true Các control nằm bên trong UpdatePanel sẽ tự động cập nhật khi ta click vào nút Tìm kiếm Bài 11: Giới thiệu và sử dụng Ajax ASP.Net Ajax Framework 39 39 Ngành lập trình - CSDL • Các control trong ASP.NET AJAX − Update Panel: • Ví dụ: Tìm kiếm thông tin học viên Bài 11: Giới thiệu và sử dụng Ajax ASP.Net Ajax Framework 40 40 Ngành lập trình - CSDL • Các control trong ASP.NET AJAX − Update Panel: • Triggers: UpdatePanel cập nhật nội dung khi các biến cố của các control được cấu hình làm trigger xảy ra Ví dụ: ta thiết kế màn hình danh mục nhà xuất bản như sau: - DetailsView để thêm dữ liệu nhà xuất bản - UpdatePanel để cập nhật lưới khi thêm nhà xuất bản - Lưới GridView nằm bên trong UpdatePanel - Cho phép xóa, sửa, sắp trên trên Lưới Bài 11: Giới thiệu và sử dụng Ajax ASP.Net Ajax Framework 41 41 Ngành lập trình - CSDL Ví dụ: dùng UpdatePanel với Triggers 42 42 Ngành lập trình - CSDL UpdatePanel cập nhật nội dung khi sự kiện ItemInserted của DetailsView xảy ra Ví dụ: dùng UpdatePanel với Triggers 43 43 Ngành lập trình - CSDL • Các control trong ASP.NET AJAX − Update Panel: • Phương thức Update: cập nhật nội dung nằm bên trong UpdatePanel Ví dụ: cập nhật nội dung UpdatePanel1 khi Click vào Button thì trong biến cố Click của Button viết lệnh như sau: UpdatePanel1.Update(); Bài 11: Giới thiệu và sử dụng Ajax ASP.Net Ajax Framework 44 44 Ngành lập trình - CSDL • Các control trong ASP.NET AJAX − Update Panel: một số điểm cần lưu ý • Sử dụng nhiều UpdatePanel Control: Giả sử trang ASP.NET AJAX của ta có nhiều vùng nội dung muốn cập nhật thì ta có thể chứa các vùng này trong các UpdatePanel khác nhau • Để kiểm soát được việc cập nhật của các UpdatePanel control thì ta nên lưu ý đến thuộc tính UpdateMode của nó. Ta gán UpdateMode = Conditional. Sau đó kiểm soát việc cập nhật nội dung của UpdatePanel bằng Trigger hoặc gọi phương thức Update của Panel Bài 11: Giới thiệu và sử dụng Ajax ASP.Net Ajax Framework 45 45 Ngành lập trình - CSDL • Các control trong ASP.NET AJAX − Update Panel: một số điểm cần lưu ý • Nếu ta để UpdateMode=Always thì khi có PostBack, tất cả các UpdatePanel đều cập nhật nội dung. Điều này sẽ ảnh hưởng tới cập nhật Bài 11: Giới thiệu và sử dụng Ajax ASP.Net Ajax Framework 46 46 Ngành lập trình - CSDL • Các control trong ASP.NET AJAX − UpdateProgress: • UpdateProgress được dùng kèm với UpdatePanel • UpdateProgress cho ta biết quá trình xử lý ở Server của UpdatePanel có hoàn tất chưa • Ví dụ: Để cập nhật nội dung hiển thị cho lưới thì bước đầu ta phải lấy dữ liệu, sau đó mới hiển thị dữ liệu cho lưới. Trong lúc chờ Server lấy dữ liệu cho lưới thì ta có thể dùng UpdateProgress để xuất ra câu thông báo: Đang load dữ liệu Bài 11: Giới thiệu và sử dụng Ajax ASP.Net Ajax Framework 47 47 Ngành lập trình - CSDL • Các control trong ASP.NET AJAX − UpdateProgress – Sử dụng: • Thuộc tính AssociatedUpdatePanel dùng để gắn UpdateProgress với UpdatePanel • Ví dụ: Màn hình tìm kiếm học viên Bài 11: Giới thiệu và sử dụng Ajax ASP.Net Ajax Framework 48 48 Ngành lập trình - CSDL • Các control trong ASP.NET AJAX − Timer: • Dùng để quy định sau một khoảng thời gian thì sẽ tự động xử lý gì đó. • Ví dụ: Sau mỗi giây thì cập nhật lại UpdatePanel. Ta làm chương trình đồng hồ điện tử như sau: protected void Timer1_Tick(object sender, EventArgs e) { Label1.Text = DateTime.Now.ToString("hh:mm:ss"); } Bài 11: Giới thiệu và sử dụng Ajax ASP.Net Ajax Framework 49 49 Ngành lập trình - CSDL HẾT Bài 11: Giới thiệu và sử dụng Ajax

Các file đính kèm theo tài liệu này:

  • pdftailieu.pdf
Tài liệu liên quan