Top Banner
MỤC LỤC NI DUNG TRANG LỜI NÓI ĐẦU ................................................................................................................................ 3 TÀI LIU THAM KHO ............................................................................................................. 4 BÀI 1: ASP.NET VÀ KIN TRÚC .NET .................................................................................... 5 I. NET FRAMEWORK ................................................................................................................ 5 II. NHỮNG ƯU ĐIỂM CA ASP.NET ...................................................................................... 5 III. QUÁ TRÌNH XLÝ TP TIN ASPX .................................................................................. 6 IV. TO MỘT TRANG ASP.NET ĐƠN GIÃN TRÊN VISUAL STUDIO .NET ..................... 6 BÀI 2: ĐIỀU KHIN WEBFORM .............................................................................................. 7 I. HTML CONTROL .................................................................................................................... 7 II. ASP.NET WEB CONTROL .................................................................................................... 7 II.1. ASP.NET Page................................................................................................................... 7 II.2. Điều khiển cơ bản .............................................................................................................. 8 II.3. Điều khin kim tra dliu nhp (Validation Control) ..................................................... 9 II.4. Mt sđiều khin khác .................................................................................................... 11 BÀI 3: LIST CONTROL - DATAGRID .................................................................................... 12 I. GII THIU DATAGRID ...................................................................................................... 12 II. ĐỊNH DNG DATAGRID ................................................................................................... 12 II.1. Trang General .................................................................................................................. 12 II.2. Trang Columns: Qun lý các ct ..................................................................................... 12 II.3. Trang Paging (Qun lý phân trang) ................................................................................. 13 II.4. Trang Format ................................................................................................................... 14 II.5. Trang Border .................................................................................................................... 14 III. XLÝ SP XP ................................................................................................................. 15 IV. XLÝ PHÂN TRANG ....................................................................................................... 15 V. CP NHT DLIU TRC TIP TRÊN DATAGRID .................................................... 15 BÀI 4: LIST CONTROL - DATALIST ..................................................................................... 16 I. HIN THDLIU TRÊN DATALIST ............................................................................... 16 II. CP NHT DLIU TRÊN DATALIST ........................................................................... 16 BÀI 5: LIST CONTROL - REPEATER .................................................................................... 18 I. CÁC THÀNH PHN BÊN TRONG REPEATER ................................................................. 18 II. TO NGUN DLIU CHO REPEATER ........................................................................ 18 Giáo trình Lập trình web 1 Trang 1
26

BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

Feb 24, 2018

Download

Documents

vokien
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

MỤC LỤC

NỘI DUNG TRANG

LỜI NÓI ĐẦU ................................................................................................................................ 3

TÀI LIỆU THAM KHẢO ............................................................................................................. 4

BÀI 1: ASP.NET VÀ KIẾN TRÚC .NET .................................................................................... 5

I. NET FRAMEWORK ................................................................................................................ 5

II. NHỮNG ƯU ĐIỂM CỦA ASP.NET ...................................................................................... 5

III. QUÁ TRÌNH XỬ LÝ TẬP TIN ASPX .................................................................................. 6

IV. TẠO MỘT TRANG ASP.NET ĐƠN GIÃN TRÊN VISUAL STUDIO .NET ..................... 6

BÀI 2: ĐIỀU KHIỂN WEBFORM .............................................................................................. 7

I. HTML CONTROL .................................................................................................................... 7

II. ASP.NET WEB CONTROL .................................................................................................... 7

II.1. ASP.NET Page ................................................................................................................... 7

II.2. Điều khiển cơ bản .............................................................................................................. 8

II.3. Điều khiển kiểm tra dữ liệu nhập (Validation Control) ..................................................... 9

II.4. Một số điều khiển khác .................................................................................................... 11

BÀI 3: LIST CONTROL - DATAGRID .................................................................................... 12

I. GIỚI THIỆU DATAGRID ...................................................................................................... 12

II. ĐỊNH DẠNG DATAGRID ................................................................................................... 12

II.1. Trang General .................................................................................................................. 12

II.2. Trang Columns: Quản lý các cột ..................................................................................... 12

II.3. Trang Paging (Quản lý phân trang) ................................................................................. 13

II.4. Trang Format ................................................................................................................... 14

II.5. Trang Border .................................................................................................................... 14

III. XỬ LÝ SẮP XẾP ................................................................................................................. 15

IV. XỨ LÝ PHÂN TRANG ....................................................................................................... 15

V. CẬP NHẬT DỮ LIỆU TRỰC TIẾP TRÊN DATAGRID .................................................... 15

BÀI 4: LIST CONTROL - DATALIST ..................................................................................... 16

I. HIỂN THỊ DỮ LIỆU TRÊN DATALIST ............................................................................... 16

II. CẬP NHẬT DỮ LIỆU TRÊN DATALIST ........................................................................... 16

BÀI 5: LIST CONTROL - REPEATER .................................................................................... 18

I. CÁC THÀNH PHẦN BÊN TRONG REPEATER ................................................................. 18

II. TẠO NGUỒN DỮ LIỆU CHO REPEATER ........................................................................ 18

Giáo trình Lập trình web 1 Trang 1

Page 2: BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

BÀI 6: MASTER PAGE ............................................................................................................... 20

I. GIỚI THIỆU............................................................................................................................. 20

III. TẠO WEB FORM SỬ DỤNG MASTER PAGE ................................................................. 20

BÀI 7: CÁC ĐỐI TƯỢNG QUẢN LÝ ỨNG DỤNG ................................................................. 22

I. ĐỐI TƯỢNG RESPONSE ....................................................................................................... 22

II. ĐỐI TƯỢNG REQUEST ....................................................................................................... 22

III. ĐỐI TƯỢNG SESSION VÀ APPLICATION ...................................................................... 23

IV. ĐỐI TƯỢNG SERVER ........................................................................................................ 25

V. ĐỐI TƯỢNG COOKIE .......................................................................................................... 25

VI. TẬP TIN GLOBAL.ASAX ................................................................................................... 25

Giáo trình Lập trình web 1 Trang 2

Page 3: BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

LỜI NÓI ĐẦU

Giáo trình “Lập trình web 1” được biên soạn dành cho học sinh trung cấp nghề và sinh viên cao

đẳng nghề với mục tiêu cung cấp cho người học các kiến thức cần thiết để có thể hoàn thành một

ứng dụng web báo điện tử, quảng cáo sản phẩm, …

Tác giả đã nghiên cứu một số tài liệu kết hợp với kinh nghiệm làm việc thực tế để viết nên giáo

trình này. Nội dung được tác giả trình bày cô động, dễ hiểu kèm theo các bước hướng dẫn thực

hành chi tiết giúp cho người học hình thành được kỹ năng nghề.

Trong quá trình biên soạn, chắc chắn giáo trình còn nhiều thiếu sót. Tác giả rất mong nhận được

ý kiến đóng góp của quý thầy/cô và các em học sinh, sinh viên.

TÁC GIẢ

Phan Hữu Phước

Giáo trình Lập trình web 1 Trang 3

Page 4: BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

TÀI LIỆU THAM KHẢO

1. Phạm Hữu Khang, Lập trình ASP.NET 2.0, NXB Lao động - Xã hội 2. Dương Quang Thiện, Lập trình Web dùng ASP.NET và C#, NXB Tổng hợp Tp. HCM 3. Tài liệu Hướng dẫn giảng dạy Lập trình ứng dụng Web với ASP.NET, Trung tâm Tin học

Đại học Khoa học Tự nhiên Tp. HCM

Giáo trình Lập trình web 1 Trang 4

Page 5: BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

BÀI 1: ASP.NET VÀ KIẾN TRÚC .NET

I. NET FRAMEWORK .NET Framework là bộ thư viện các lớp đối tượng dành cho các lập trình viên .NET.

- OS: Cung cấp các chức năng xây dựng ứng dụng. - Common Language Runtime (CLR): là thành phần kết nối giữa các phần khác trong .NET Framework với hệ điều hành. CLR giữa vai trò quản lý việc thi hành các ứng dụng viết bằng .NET trên Windows. - Base Class Library: thư viện các lớp cơ bản nhất, được dùng trong khi lập trình hay bản thân những người xây dựng .NET Framework cũng phải dùng nó để xây dựng các lớp cao hơn. Ví dụ các lớp trong thư viện này là String, Integer, Exception. - ADO.NET and XML: Bộ thư viện này gồm các lớp dùng để xử lý dữ liệu. Các lớp đối tượng XML được cung cấp để bạn xử lý các dữ liệu theo định dạng mới: XML. - ASP.NET: Bộ thư viện các lớp đối tượng dùng trong việc xây dựng các ứng dụng Web. Ứng dụng web xây dựng bằng ASP.NET tận dụng được toàn bộ khả năng của .NET Framework. Bên cạnh đó là một "phong cách" lập trình mới mà Microsoft đặt cho nó một tên gọi rất kêu: Code Behind.

II. NHỮNG ƯU ĐIỂM CỦA ASP.NET - ASP.Net cho phép lập trình viên lựa chọn một trong các ngôn ngữ lập trình yêu thích: Visual Basic.Net, J#, C#,… - Trang ASP.Net được biên dịch trước. Thay vì phải đọc và thông dịch mỗi khi trang web được yêu cầu, ASP.Net biên dịch những trang web động thành những tập tin DLL mà Server có thể thi hành nhanh chóng và hiệu quả. Yếu tố này là một bước nhảy vọt đáng kể so với kỹ thuật thông dịch của ASP.

• ASP.Net hỗ trợ mạnh mẽ bộ thư viện phong phú và đa dạng của .Net Framework, làm việc

với XML, Web Service, truy cập cơ sở dữ liệu qua ADO.Net, … • ASPX và ASP có thể cùng hoạt động trong 1 ứng dụng.

Giáo trình Lập trình web 1 Trang 5

Page 6: BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

• ASP.Net sử dụng phong cách lập trình mới: Code behide. Tách code riêng, giao diện riêng → Dễ đọc, dễ quản lý và bảo trì.

• Kiến trúc lập trình giống ứng dụng trên Windows. • Hỗ trợ quản lý trạng thái của các control • Tự động phát sinh mã HTML cho các Server control tương ứng với từng loại Browser • Hỗ trợ nhiều cơ chế cache. • Triển khai cài đặt

o Không cần lock, không cần đăng ký DLL o Cho phép nhiều hình thức cấu hình ứng dụng

• Hỗ trợ quản lý ứng dụng ở mức toàn cục o Global.aspx có nhiều sự kiện hơn o Quản lý session trên nhiều Server, không cần Cookies

III. QUÁ TRÌNH XỬ LÝ TẬP TIN ASPX Khi Web server nhận được yêu cầu từ phía client, nó sẽ tìm kiếm tập tin được yêu cầu thông qua chuỗi URL được gởi về, sau đó, tiến hành xử lý theo sơ đồ sau:

IV. TẠO MỘT TRANG ASP.NET ĐƠN GIÃN TRÊN VISUAL STUDIO .NET • B1: Khởi động Visual Studio .NET • B2: Tạo ứng dụng ASP.NET • B3: Chèn một số điều khiển đơn giãn • B4: Đặt các thuộc tính cơ bản cho các điều khiển • B5: Viết Code Behind • B6: Biên dịch và thực thi ứng dụng

Giáo trình Lập trình web 1 Trang 6

Page 7: BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

BÀI 2: ĐIỀU KHIỂN WEBFORM

I. HTML CONTROL Điều khiển HTML (tag HTML) trong trang ASP.Net được xem như những chuỗi văn bản bình thường. Để có thể được lập trình ở phía Server: runat = “server” Những điều khiển HTML có thuộc tính runat = “server” được gọi là HTML Server Control

II. ASP.NET WEB CONTROL II.1. ASP.NET Page Đây là thành phần chính của giao diện, là nơi chứa các điều khiển, được sử dụng để thể hiện nội dung trang web đến người dùng. Sự kiện:

• Init: xảy ra lần đầu tiên, khi trang được yêu cầu. • Load: xảy ra sau sự kiện Init, khi trang bắt đầu nạp. Là nơi giải quyết phần lớn các xử lý,

khởi tạo một số giá trị cho trang. • PreRender: khi trang chuẩn bị trả về cho Client. • Unload: đối lập với sự kiện Init, xảy ra sau tất cả các sự kiện khác.

Thuộc tính: • IsPostBack: kiểu luận lý (boolean), cho biết trạng thái của trang khi được nạp. Nếu trang

được nạp lần đầu tiên thì thuộc tính này có giá trị là false. Thường sử dụng trong sự kiện Load của trang

Giáo trình Lập trình web 1 Trang 7

Page 8: BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

• SmartNavigation: Nếu là true thì trình duyệt sẽ giữ nguyên vị trí đang đọc sau khi được Reload

II.2. Điều khiển cơ bản Đơn giản, tương tự như các điều khiển trên Windows Form Đồng nhất: có các thuộc tính giống nhau -> dễ tìm hiểu và sử dụng Hiệu quả: tự động phát sinh các tag HTML theo từng loại trình duyệt Label: Hiển thị và trình bày nội dung trên trang web. Nội dung được hiển thị thông qua thuộc tính Text. Hyperlink: Tạo liên kết siêu văn bản ImageURL: đường dẫn hình ảnh hiển thị trên điều khiển. Text: chuỗi văn bản hiển thị. Trong trường hợp cả ImageURL và Text được thiết lập thì ImageURL được ưu tiên hiển thị, thuộc tính Text được hiển thị như Tooltip NavigateUrl: đường dẫn liên kết đến Target: xác định cửa sổ hiển thị TextBox: Nhập và hiển thị dữ liệu, được sử dụng rất nhiều. Text: nội dung hiển thị trong TextBox TextMode: quy định chức năng của TextBox

• SingleLine: hiển thị và nhập một dòng dữ liệu • MultiLine: hiển thị và nhập nhiều dòng dữ liệu • Password: hiển thị dấu * thay cho các ký tự trong TextBox

Image: Hiển thị hình ảnh trên trang web. ImageURL: đường dẫn đến tập tin hình ảnh cần hiển thị AlternateText: nội dung hiển thị thay thế khi không thể hiển thị hình ảnh ImageAlign: vị trí hiển thị giữa hình ảnh và văn bản xung quanh Button, ImageButton, LinkButton: mặc định là các Submit Button, mỗi khi được click chuột thì sẽ PostBack về Server.

Text: chuỗi văn bản hiển thị trên điều khiển CommandName: Tên lệnh, được sử dụng trong sự kiện Command CommandArgument: Thông tin truyền vào sự kiện Command ListBox và DropDownList: hiển thị danh sách lựa chọn AutoPostBack: Nếu được gán là true thì sẽ tự động PostBack về cho Server khi có sự thay đổi mục chọn trong danh sách. Mặc định là false Items: danh sách các mục Rows: chiều cao của ListBox SelectionMode: cách thức chọn các mục trong ListBox CheckBox, RadioButton: Checked: trạng thái của mục chọn – có được chọn hay không TextAlign: định vị trí hiển thị của điều khiển so với văn bản xung quanh AutoPostBack: điều khiển có được phép tự động PostBack về Server khi các mục chọn của điều khiển bị thay đổi. Giá trị mặc định của thuộc tính này là False - không tự động Postback. GroupName: tên nhóm, được dùng để nhóm các điều khiển RadioButton vào một nhóm CheckBoxList, RadioButtonList: tạo ra một nhóm CheckBox/RadioButton, là điều khiển danh sách

Giáo trình Lập trình web 1 Trang 8

Page 9: BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

• RepeatColumns: số cột hiển thị • RepeatDirection: hình thức hiển thị • AutoPostBack: qui định điều khiển có được phép tự động PostBack về Server khi các mục

chọn của điều khiển bị thay đổi. Giá trị mặc định của thuộc tính này là False - không tự động Postback.

Liên kết dữ liệu với các điều khiển ListBox, DropDownList, CheckBoxList, RadioButtonList <KDL_DS> <biến>; //Khởi tạo các mục trong ds <biến> <Điều khiển>.DataSource = <biến>; <Điều khiển>.DataTextField = <trường 1>; <Điều khiển>.DataValueField = <trường 2>; <Điều khiển>.DataBind(); II.3. Điều khiển kiểm tra dữ liệu nhập (Validation Control) Kiểm tra dữ liệu trước khi PostBack về cho Server

Các thuộc tính chung của các Validation Control

• ControlToValidate: Tên điều khiển cần kiểm tra dữ liệu • Text: chuỗi thông báo xuất hiện khi phát hiện có lỗi • ErrorMessage: chuỗi thông báo xuất hiện trong điều khiển Validation Summary. Giá trị

này sẽ được hiển thị tại vị trí của điều khiển khi thuộc tính Text không được gán giá trị • Display: qui định hình thức hiển thị

• None: không hiển thị thông báo lỗi (vẫn kiểm tra dữ liệu trước khi PostBack) • Static: trong trường hợp không có vi phạm dữ liệu, điều khiển không hiển thị nhưng

vẫn chiếm không gian trong lúc thiết kế • Dynamic: trong trường hợp không có vi phạm dữ liệu, điều khiển không chiếm vị trí

trên trang EnableClientScript: cho phép thực hiện kiểm tra trên Client hay không. Giá trị mặc định là true Required Field Validator Kiểm tra giá trị trong điều khiển phải được nhập -> kiểm tra ràng buộc dữ liệu khác rỗng InitialValue: giá trị khởi động, giá trị nhập vào điều khiển phải khác với giá trị này

Giáo trình Lập trình web 1 Trang 9

Page 10: BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

Compare Validator 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 hoặc với một giá trị cho trước -> kiểm tra ràng buộc miền giá trị, kiểu dữ liệu, liên thuộc tính Operator: dùng các phép so sánh hoặc kiểm tra dữ liệu ControlToCompare: tên điều khiển cần so sánh giá trị Type: qui định kiểu dữ liệu để kiểm tra hoặc so sánh ValueToCompare: giá trị cần so sánh Regular Expression Validator Kiểm tra giá trị nhập vào theo mẫu quy định: địa chỉ email, số điện thoại, … ValidationExpression: qui định mẫu kiểm tra

Hộp thoại Regular Expression

Bảng mô tả các ký hiệu trong Regular Expression

Custom Validator Tự viết hàm xử lý kiểm tra lỗi ServerValidate: đặt các xử lý kiểm tra dữ liệu trong sự kiện này. Việc kiểm tra được thực hiện tại Server

Giáo trình Lập trình web 1 Trang 10

Page 11: BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

II.4. Một số điều khiển khác Literal: tương tự như Label nhưng không tạo ra thẻ <span> như Label Panel và PlaceHolder: dùng để chứa các điều khiển khác. Có thể kéo thả các điều khiển khác vào Panel nhưng không thể làm điều đó với PlaceHoder. Chỉ có thể thêm các điều khiển khác vào PlaceHolder trong lúc thi hành thông qua tập hợp Controls của điều khiển. Điều khiển Table: hiển thị dữ liệu theo các dòng lệnh đã được cài đặt AdRotator: tạo các banner quảng cáo cho trang web, hình ảnh sẽ tự động thay đổi sau mỗi lần PostBack AdvertisementFile: tập tin (.xml) chứa nội dung quảng cáo cho điều khiển Đối tượng ViewState: ViewState được cung cấp để 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. Mặc định, các trang web khi được tạo sẽ cho phép sử dụng đối tượng ViewState thông qua thuộc tính EnableViewState (của trang web) = True.

Giáo trình Lập trình web 1 Trang 11

Page 12: BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

BÀI 3: LIST CONTROL - DATAGRID

I. GIỚI THIỆU DATAGRID DataGrid là một điều khiển khá linh hoạt và hiệu quả trong việc hiển thị, định dạng và thao tác với dữ liệu. Bên cạnh đó, chúng ta có thể thực hiện sắp xếp dữ liệu, thực hiện phân trang với sự hỗ trợ khá tốt của VS .Net trong quá trình thiết kế.

II. ĐỊNH DẠNG DATAGRID

Chọn Property Builder từ menu ngữ cảnh II.1. Trang General

• Show header: Qui định dòng tiêu đề trên có được phép hiển thị hay không. (mặc định là có

hiển thị dòng tiêu đề) • Show footer: Qui định dòng tiêu đề dưới có được phép hiển thị hay không. (mặc định là

không hiển thị dòng tiêu đề dưới) • Allow sorting: Có cho phép sắp xếp dữ liệu hay không. (mặc định là không cho phép sắp

xếp) II.2. Trang Columns: Quản lý các cột

Giáo trình Lập trình web 1 Trang 12

Page 13: BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

- Create columns automatically at runtime: Khi được chọn, DataGrid sẽ tự động phát sinh đầy đủ các cột có trong nguồn dữ liệu. Muốn tùy biến hiển thị các cột thì không chọn chức năng này. - Column list: Qui định các cột được hiển thị trong lưới.

• Bound Column: Cột có liên kết với nguồn dữ liệu. • Button Column: Cột dạng nút lệnh đã được thiết kế sẵn. Điều khiển DataGrid cung cấp 3

loại cột dạng này: o Select: Nút lệnh chọn dòng dữ liệu o Edit, Cancel, Update: Các nút lệnh hỗ trợ chức năng cập nhật dữ liệu trực tiếp trên

lưới. o Delete: Nút lệnh xóa dòng dữ liệu

• Hyperlink Column: Cột có liên kết dữ liệu dạng liên kết. • Template Column: Cột do người dùng tự thiết kế. Đây là loại cột có khả năng làm việc khá

linh hoạt - BoundColumn properties: Qui định thông tin chi tiết cho các cột

• HeaderText, Footer Text: Thông tin tiêu đề trên/dưới của cột • Header Image: Hình hiển thị trên tiêu đề cột (thay thế thông tin tiêu đề cột - Header Text). • Sort Expression: Biểu thức sắp xếp của cột. • Visible: Qui định cột có được hiển thị hay không. • DataField: Qui định tên field hay tên thuộc tính của đối tượng dữ liệu cần hiển thị. • Data formatting expression: Biểu thức định dạng dữ liệu.

Mẫu định dạng: {0:<chuỗi định dạng>}. Ví dụ:

+ Định dạng số: {0:000.00}, {0:0.##} + Định dạng ngày giờ: {0:dd/MM/yyyy}, {0:hh/mm/ss tt}

• Read Only: Chọn giá trị này để cột chỉ được phép đọc, không cho phép cập nhật dữ liệu. Convert this column into a Template Column: Chuyển cột hiện hành thành cột dạng Template Column. II.3. Trang Paging (Quản lý phân trang)

Giáo trình Lập trình web 1 Trang 13

Page 14: BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

- Allow paging: Có cho phép phân trang hay không. - Page size: Qui định số dòng của mỗi trang. - Show navigation buttons: Có hiển thị bộ nút để di chuyển từ trang này qua trang khác hay không. Giá trị mặc định là True. - Possition: Qui định vị trí hiển thị của bộ nút di chuyển. Ở phía trên thanh tiêu đề, ở phía dưới hay cả hai. - Mode: Qui định hình thức hiển thị của bộ nút di chuyển. Hiển thị dạng số trang hay là các chuỗi ký tự đại diện (Next page/Previous page button text). Trong trường hợp hiển thị dạng số, Numeric buttons qui định số nút lệnh được hiển thị tối đa.

II.4. Trang Format Trang Format quản lý việc định dạng hiển thị trên điều khiển DataGrid. Các định dạng chung như: Màu chữ, màu nền, Font chữ, kích cỡ, in đậm /in nghiêng/gạch dưới và canh lề.

- DataGrid: Qui định các định dạng chung cho lưới - Header: Định dạng cho dòng tiêu đề. - Footer: Định dạng cho dòng tiêu đề dưới. - Pager: Định dạng cho dòng chứa các nút lệnh phân trang. - Items

• Normal Items: Định dạng cho các dòng dữ liệu. • Alternating Items: Định dạng hiển thị cho các dòng lẻ. • Selected Items:Định dạng hiển thị cho dòng đang được chọn. • Edit Mode Items: Định dạng hiển thị cho dòng đang ở trạng thái hiệu chỉnh dữ liệu.

- Columns: Qui định độ rộng và các định dạng riêng cho từng cột. II.5. Trang Border

• Cell padding: khoảng cách giữa đường biên của ô với nội dung bên trong ô

Giáo trình Lập trình web 1 Trang 14

Page 15: BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

• Cell spacing: khoảng cách giữa các ô • Grid lines: loại đường viền • Bordder color: màu đườn viền • Border width: độ dày đường viền

III. XỬ LÝ SẮP XẾP - Gán thuộc tính Allow Sorting của DataGrid bằng true - Nhập biểu thức sắp xếp cho thuộc tính Sort expression cho các cột cần sắp xếp - Xử lý sự kiện SortCommand của DataGrid: e.SortExpression cho biết thông tin của cột được chọn sắp xếp <datatable>=CketNoi.Doc(<sql>) Dtghocsinh.DataSource=<datatable> Dtghocsinh.DataBind()

IV. XỨ LÝ PHÂN TRANG - Thay đổi các thông số cần thiết cho việc phân trang (Mục II.3) - Xử lý sự kiện PageIndexChanged của DataGrid e.NewPageIndex cho biết trang được chọn để hiển thị dữ liệu. dtghocsinh.CurrentPageIndex = e.NewPageIndex

V. CẬP NHẬT DỮ LIỆU TRỰC TIẾP TRÊN DATAGRID Trong cửa sổ thuộc tính của lưới, chúng ta tạo bộ nút lệnh cần thiết hỗ trợ cho việc cập nhật dữ liệu. Ở ví dụ này, chúng tôi tạo bộ nút (Select - chọn), (Edit, Update, Cancel - Sửa, Ghi, Không) và (Delete - Hủy) Đối với các nút lệnh trên, các bạn cần chú ý đến giá trị của thuộc tính Command name. Ứng với mỗi nút lệnh có giá trị CommandName khác nhau, nhờ đó, ta viết lệnh xử lý với chức năng tương ứng được chọn. - Select: Command name = "Select" - Edit, Update/Cancel: Command name = "Edit", "Update"/"Cancel" - Delete: Command name = "Delete" Ứng với mỗi CommandName mặc định, sẽ có các sự kiện để ta thực hiện các xử lý tương ứng: - Command name="Edit": Sự kiện EditCommand - Command name="Update": Sự kiện UpdateCommand - Command name="Cancel": Sự kiện CancelCommand - Command name="Delete": Sự kiện DeleteCommand Chúng ta sẽ sử dụng sự kiện dành chung cho tất cả các nút lệnh có thuộc tính CommandName (Button, Linkbutton, ImageButton) được đặt trên lưới - sự kiện ItemCommand. Vì khi ta đặt các nút lệnh vào lưới (sử dụng cột Template column), chúng (các nút lệnh) không còn sự kiện Click nữa, thay vào đó, tất cả các nút lệnh khi được nhấn sẽ gây ra sự kiện ItemCommand của DataGrid. Dựa vào giá trị e.CommandName (tham số trong sự kiện) để chúng ta xác định nút lệnh nào đã được nhấn. Xử lý chọn mẫu tin: If e.CommandName = "Select" Then dtgKhach_hang.SelectedIndex = e.Item.ItemIndex Lien_ket_du_lieu() End If Xử lý sửa, ghi, không Muốn cập nhật dữ liệu, ta cần xác định học sinh được cập nhật thông qua mahs. Để lấy mahs: - Gán thuộc tính DataKeyField của điều khiển lưới = "mahs" - <datagrid>.DataKeys(<chỉ số i>): Trả về mahs tại dòng <chỉ số i>

Giáo trình Lập trình web 1 Trang 15

Page 16: BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

BÀI 4: LIST CONTROL - DATALIST

I. HIỂN THỊ DỮ LIỆU TRÊN DATALIST Một số thuộc tính đáng chú ý của DataList - RepeatDirection: quy định hướng hiển thị dữ liệu

• Horizontal: Hiển thị dữ liệu theo chiều ngang

• Vertical (mặc định): Hiển thị dữ liệu theo chiều đứng

- RepeatColumns: Qui định số cột hiển thị của DataList Thiết kế hình thức hiển thị cho DataList cũng tương tự như thiết kế cho cột Template Column của DataGrid. Chọn Edit Template -> ItemTemplate từ thực đơn ngữ cảnh để thực hiện thiết kế hình thức hiển thị cho DataList. - Như cột Template Column của DataGrid, xử lý hiển thị dữ liệu cho DataList được viết trong sự kiện ItemDataBound. Xử lý sự kiện click của các Button đặt trong DataList được viết trong sự kiện ItemCommand.

II. CẬP NHẬT DỮ LIỆU TRÊN DATALIST Ngoài việc hiển thị dữ liệu, DataList cũng hỗ trợ các thao tác cập nhật dữ liệu. Để thực hiện chức năng cập nhật dữ liệu với DataList, chúng ta cần phải thiết kế thêm vùng EditIemTemplate cho DataList. Thiết kế: Thiết kế cho cả 2 vùng ItemTemplate và EditItemTemplate. Thực hiện các thao tác liên kết dữ liệu cho các điều khiển trong vùng EditItemTemplate thông qua cửa sổ thuộc tính tương tự như trong ItemTemplate. Chú ý: Chúng ta hoàn toàn có thể thực hiện việc liên kết dữ liệu trong sự kiện ItemDataBound Xử lý lệnh để cập nhật dữ liệu

Giáo trình Lập trình web 1 Trang 16

Page 17: BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

Xử lý các sự kiện EditCommand, CancelCommand, UpdateCommand để thực hiện/bỏ qua việc thay đổi dữ liệu.

Giáo trình Lập trình web 1 Trang 17

Page 18: BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

BÀI 5: LIST CONTROL - REPEATER

I. CÁC THÀNH PHẦN BÊN TRONG REPEATER

<HeaderTemplate> … </HeaderTemplate> Quy định hình thức hiển thị của tiêu đề. Chỉ xuất hiện một lần phía trên của Repeater. Đây là phần tùy chọn, không có cũng được. <ItemTemplate> … </ItemTemplate> Đây là phần bắt buộc, quy định hình thức hiển thị của các mục dữ liệu trong Repeater <AlternatingItemTemplate> … </AlternatingItemTemplate..> Qui định hình thức hiển thị cho các mục dữ liệu trong điều khiển. Nội dung được qui định trong cặp tag này sẽ hiển thị xen kẽ với các nội dung trong cặp tag <ItemTemplate></ItemTemplate>. Đây là phần tùy chọn <SeparatorTemplate> … </SeparatorTemplate> Qui định hình thức hiển thị giữa các dòng dữ liệu. Đây là phần tùy chọn <FooterTemplate> … </FooterTemplate> Qui định hình thức hiển thị cho tiêu đề dưới. (Chỉ xuất hiện 1 lần, phía dưới của điều khiển). Đây là phần tùy chọn

II. TẠO NGUỒN DỮ LIỆU CHO REPEATER Xử lý trong sự kiện Page_Load của trang DataTable Bang Bang = CKetNoi.Doc(sql); Rpthocsinh.DataSource=bang; Rpthocsinh.DataBind(); ***Nên đặt các lệnh trên vào một hàm riêng và gọi hàm đó trong sự kiện Page_Load

Giáo trình Lập trình web 1 Trang 18

Page 19: BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

Giáo trình Lập trình web 1 Trang 19

Page 20: BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

BÀI 6: MASTER PAGE

I. GIỚI THIỆU - Master Page gần giống với Template trong DreamWeaver - Master Page là một Web Form đặc biệt, chứa các Control, thành phần giao diện dùng chung cho các Web Form khác. - Các Web Form khác kế thừa từ Master Page - Tránh việc thiết kế lại giao diện ở các Web Form khác

- ContentPlaceHolder: là control chứa nội dung đặc trưng của mỗi Web Form Tạo Master Page B1: Click chuột phải lên Website Project, chọn Add -> New Item B2: Trong danh sách Templates, chọn Master Page, đặt tên cho tập tin MasterPage (chú ý phần mở rộng là .Master) Sau khi tạo xong Master Page, chúng ta thiết kế Master Page và viết Code Behind như những Web Form ở các bài học trước. Đặc biệt, khu vực trình bày nội dung đặc trưng của từng trang web, chúng ta sẽ chèn một ContentPlaceHolder. *Sau khi tạo xong Master Page, Visual Studio .NET sẽ chèn sẵn một ContentPlaceHolder. Chèn ContenPlaceHolder: B1: Click chuột vào vị trí cần chèn ContentPlaceHolder để chứa nội dung đặc trưng của từng trang web B2: Chèn ContentPlaceHolder từ ToolBox trong nhóm Standard Control B3: Đặt tên cho ContentPlaceHolder

III. TẠO WEB FORM SỬ DỤNG MASTER PAGE B1: Click chuột phải lên Website Project, chọn Add -> New Item B2: Trong danh sác Templates, chọn Web Form

Giáo trình Lập trình web 1 Trang 20

Page 21: BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

B3: Đánh dấu chọn Select Master Page và đặt tên tập tin cho Web Form rồi chọn Add

B4: Trong hộp thoại Select a Master Page, chọn Master Page cần áp dụng cho Web Form rồi chọn OK B5: Thiết kế nội dung bên trong ContentPlaceHoder và lập trình Code Behind như Web Form thông thường

Giáo trình Lập trình web 1 Trang 21

Page 22: BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

BÀI 7: CÁC ĐỐI TƯỢNG QUẢN LÝ ỨNG DỤNG

I. ĐỐI TƯỢNG RESPONSE Đối tượng Response được sử dụng để giao tiếp với Client, nó quản lý và điều phối thông tin từ Web Server đến các trình duyệt của người dùng. Phương thức Write Phương thức Write của đối tượng Response được dùng để in ra một chuỗi trên trang Web. Phương thức này là một trong những phương thức chủ lực trong các ứng dụng web sử dụng ASP 3.0 khi cần gởi kết quả từ Server về cho Client. Response.Write(“chuỗi cần gửi”) * Khi sử dụng phương thức Response.Write, chúng ta không thể qui định vị trí hiển thị của chuỗi trên trong trang Web. Phương thức Redirect 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. //Nếu đăng nhập thành công if <Kiểm tra đăng nhập>

Response.Redirect("Default.aspx"); else

Response.Redirect("Login.aspx"); Phương thức WriteFile Phương thức WriteFile của đối tượng Response dùng để trả về một tập tin cho người dùng tải về

string sTap_tin; sTap_tin = "MinhHoa.zip"; string sDuong_dan; sDuong_dan = Server.MapPath("../Download/") + sTap_tin; Response.AddHeader("Content-Disposition", _ "attachment; filename=" + sTap_tin); Response.WriteFile(sDuong_dan); Response.End();

II. ĐỐI TƯỢNG REQUEST Đối tượng Request được dùng để nhận thông tin từ trình duyệt của người dùng gởi về cho Web Server. Thuộc tính QueryString Thuộc tính QueryString của đối tượng Request cho phép chúng ta nhận các giá trị truyền qua chuỗi tham số trong địa chỉ URL mà trình duyệt gửi cho Server.

Giáo trình Lập trình web 1 Trang 22

Page 23: BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

Cú pháp: Request.QueryString("Tên_tham_số") Ví dụ: Xét địa chỉ http://www.daynghebr-vt.edu.vn/Default.aspx?khachhang=donga&lang=vi Để lấy giá trị 2 tham số khachhang và lang, chúng ta thực hiện như sau: string kh, ngonngu kh = Request.QueryString(“khachhang”); ngonngu = Request.QueryString(“lang”); lblkh.Text = kh; lblngonngu.Text = ngonngu; Trong trường hợp tên tham số không tồn tại trong chuỗi QueryString, thuộc tính Request.QueryString() sẽ trả về giá trị null.

III. ĐỐI TƯỢNG SESSION VÀ APPLICATION Application và Session là 2 đối tượng khá quan trọng trong ứng dụng web, giúp các trang aspx có thể liên kết và trao đổi dữ liệu cho nhau. Trong phần này, chúng ta sẽ tìm hiểu và sử dụng 2 đối tượng này trong ứng dụng. Đối tượng Application Đối tượng Application được sử dụng để quản lý tất cả các thông tin của một ứng dụng web. Thông tin được lưu trữ trong đối tượng Application có thể được xử lý trong bất kỳ trang aspx nào trong suốt chu kỳ sống của ứng dụng.

Tạo biến Application: Application(“tên biến”) = <giá trị> ; Đọc giá trị biến của Application <biến> = Application(“tên biến”) ; Ví dụ: Application.Lock(); Application("So_lan_truy_cap") = 0; Application("So_nguoi_online") = 0; Application.UnLock(); ***Chú ý:

Giáo trình Lập trình web 1 Trang 23

Page 24: BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

Do tại một thời điểm có thể có nhiều người cùng lúc truy cập và thay đổi giá trị của các thông tin được lưu trong đối tượng Application, chúng ta nên sử dụng bộ lệnh Lock và UnLock ngay trước và sau khi cập nhật giá trị của biến Application. Biến Application có thể được sử dụng ở bất kỳ trang nào và được duy trì trong suốt chu kỳ sống của ứng dụng. Duyệt qua tập hợp các biến trong Application int i; Response.Write("<b><u>Danh sách các biến trong đối tượng Application</u></b><br>"); for (i = 0; i<Application.Count(); i++)

‘Xử lý với Application.Keys(i); Đối tượng Session Đối tượng Session được dùng để lưu trữ thông tin của người dùng trong ứng dụng. Thông tin được lưu trữ trong Session là của một người dùng trong một phiên làm việc cụ thể. Web Server sẽ tự động tạo một đối tượng Session cho mỗi người dùng mới kết nối vào ứng dụng và tự động hủy chúng nếu người dùng còn không làm việc với ứng dụng nữa. Tuy nhiên, không giống như đối tượng Application, đối tượng Session không thể chia sẻ thông tin giữa những lần làm việc của người dùng, nó chỉ có thể cung cấp, trao đổi thông tin cho các trang trong lần làm việc tương ứng. Trong ứng dụng web, đối tượng Session giữ vai trò khá quan trọng. Do sử dụng giao thức HTTP, một giao thức phi trạng thái, Web Server hoàn toàn không ghi nhớ những gì giữa những lần yêu cầu của Client. Đối tượng Session tỏ ra khá hữu hiệu trong việc thực hiện "lưu vết và quản lý thông tin của người dùng". Thuộc tính Timeout Qui định khoảng thời gian (tính bằng phút) mà Web Server duy trì đối tượng Session nếu người dùng không gởi yêu cầu nào về lại Server. Giá trị mặc định của thuộc tính này là 20 (phút). Nếu không có yêu cầu nào kể từ lần yêu cầu sau cùng một khoảng thời gian là <Timeout> phút, đối tượng Session mà Web server cấp cho lần làm việc đó sẽ tự động được giải phóng. Những yêu cầu sau đó được Web server coi như là một người dùng mới, và đương nhiên sẽ được cấp một đối tượng Session mới. Phương thức Abandon Trong khoảng thời gian <Timeout> phút kể từ lần yêu cầu sau cùng của Client, đối tượng Session vẫn được duy trì dù cho không có sự tương tác nào của Client. Điều này đồng nghĩa với việc Web server phải sử dụng một vùng nhớ để duy trì đối tượng Session trong một khoảng thời gian tương ứng. Phương thức Abandon của đối tượng Session sẽ giải phóng vùng nhớ được dùng để duy trì đối tượng Session trên Web Server ngay khi được gọi thực hiện. Những yêu cầu sau đó được Web server coi như là một người dùng mới. Tạo biến Session Session(“tên biến”) = <giá trị>; Đọc giá trị của Session <biến> = Session(“tên biến”) Ví dụ: Lưu trữ thông tin khi người dùng chưa đăng nhập vào hệ thống Session(“username”) = “” ; Sau khi người dùng đăng nhập thành công vào hệ thống Session(“username”) = “hoangthien”; Duyệt qua tập hợp các biển của Session int i; for (i=0; i<Session.Count; i++) ‘Xử lý trên Session.Keys(i)

Giáo trình Lập trình web 1 Trang 24

Page 25: BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

IV. ĐỐI TƯỢNG SERVER Đối tượng Server được sử dụng để cung cấp thông tin của Server cho ứng dụng. - Thuộc tính MachineName: dùng để lấy tên của Web Server. - Phương thức Mappath: dùng để lấy đường dẫn vật lý hoặc đường dẫn ảo đến một thư mục trên Server. - Phương thức Transfer(<Đường dẫn đến trang cần yêu cầu>): Ngừng thi hành trang hiện hành, gởi yêu cầu mới đến trang được gọi thực hiện.

V. ĐỐI TƯỢNG COOKIE Không giống như đối tượng Session, đối tượng Cookies cũng được dùng để lưu trữ thông tin của người dùng, tuy nhiên, thông tin này được lưu ngay tại máy gởi yêu cầu đến Web Server. Có thể xem một Cookie như một tập tin (với kích thước khá nhỏ) được lưu tại máy của người dùng. Mỗi lần có yêu cầu đến Web Server, những thông tin của Cookies cũng sẽ được gởi theo về Server.

Thêm Cookie Response.Cookies.Add(<HttpCookie>) Ví dụ: HttpCookie cookTen_dn = New HttpCookie("Ten_dang_nhap"); cookTen_dn.Value = txtTen_dang_nhap.Text; cookTen_dn.Expires = Date.Today.AddDays(1); Response.Cookies.Add(cookTen_dn); Đọc giá trị Cookie HttpCookie <biến Cookie>; <biến Cookie> = Request.Cookies(<Tên Cookies>); Truy cập đối tượng HttpCookie <biến Cookie>.Value Trong trường hợp Cookies chưa được lưu hoặc đã hết thời hạn duy trì tại Client, giá trị nhận được là null.

VI. TẬP TIN GLOBAL.ASAX Tập tin Global.asax được dùng để: - Khai báo và khởi tạo giá trị cho các biến Application, Session. - Viết xử lý cho các sự kiện của 2 đối tượng Application và Session. Cấu trúc: Public Class Global : System.Web.HttpApplication {

voi Application_Start(…) { } void Session_Start(…) { }

Giáo trình Lập trình web 1 Trang 25

Page 26: BỘ LAO ĐỘNG-THƯƠNG BINH CỘNG HÒA XÃ HỘI CHỦ …thuvien.brtvc.edu.vn/Documents/cntt/Lap_trinh_Web_1.pdf · TÀI LIỆU THAM KHẢO 1. Phạm Hữu Khang, Lập trình

void Application_BeginRequest(…) { } void Application_Error(…) { } void Session_End(…) { } void Application_End(…) { }

} Các sự kiện trong Global.asax Application_Start: Chỉ xảy ra một lần đầu tiên khi bất kỳ trang nào trong ứng dụng được gọi. void Application_Start(…) {

Application("So_luot_truy_cap") = 0; Application("So_nguoi_online") = 0;

} Session_Start: Xảy ra khi có một người dùng mới yêu cầu đến bất kỳ trang aspx của ứng dụng. Khi Session_Start xảy ra, một giá trị duy nhất (SessionID) sẽ được tạo cho người dùng, và giá trị này được sử dụng để quản lý người dùng trong quá trình làm việc với ứng dụng. void Session_Start(…) {

Application("So_luot_truy_cap") += 1; Application("So_nguoi_online") += 1; Session("Mkh") = 0; Session("Ten_dang_nhap") = "";

} Application_BeginRequest: Xảy ra khi mỗi khi có Postback về Server Application_Error: Xảy ra khi có lỗi phát sinh trong quá trình thi hành. Session_End: Xảy ra khi phiên làm việc không có gởi yêu cầu hoặc làm tươi trang aspx của ứng dụng web trong một khoảng thời gian (mặc định là 20 phút). void Session_End(…) {

Application("So_nguoi_online") -= 1; } Application_End: Xảy ra khi dừng hoạt động của WebServer. Ví dụ xử lý ghi nhận thông tin Số lượt truy cập vào cơ sở dữ liệu (nếu cần).

Giáo trình Lập trình web 1 Trang 26