Tải bản đầy đủ (.doc) (71 trang)

Nghiên cứu phương pháp xây dựng công cụ Webserver Controls ASP.NET và ứng dụng tạo bộ lịch vạn niên

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (818.81 KB, 71 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA CÔNG NGHỆ THÔNG TIN
Tel. (84-511) 736 949, Fax. (84-511) 842 771
Website: itf.ud.edu.vn, E-mail:

LUẬN VĂN TỐT NGHIỆP KỸ SƯ
NGÀNH CÔNG NGHỆ THÔNG TIN
MÃ NGÀNH: 05115

ĐỀ TÀI:
NGHIÊN CỨU PHƯƠNG PHÁP XÂY DỰNG
CÔNG CỤ WEB SERVER CONTROLS ASP.NET
VÀ ỨNG DỤNG TẠO BỘ LỊCH VẠN NIÊN
Mã số: 07TLT-16
Ngày bảo vệ: 16/6/2009 – 17/6/2009

SINH VIÊN THỰC HIỆN
LỚP
CÁN BỘ HƯỚNG DẪN

:
:
:

VƯƠNG HẢI
07TLT
Th.s. PHAN THANH TAO

ĐÀ NẴNG, 6/2009




LỜI CẢM ƠN
Tôi xin chân thành cảm ơn toàn thể quý thầy cô trong Khoa Công Nghệ
Thông Tin Trường Đại học Bách Khoa Đà Nẵng là những người đã hết
lòng dạy dỗ và truyền đạt những kiến thức quý báu cho tôi trong suốt thời
gian học tập.
Tôi xin gởi lời cảm ơn sâu sắc đến thầy giáo, Th.s. Phan Thanh Tao,
người đã giúp đỡ tôi trong suốt thời gian tôi thực hiện đề tài. Thầy đã tạo
những điều kiện thuận lợi và đã tận tình hướng dẫn để tôi hoàn thành đề
tài này.
Tôi xin gởi lời cảm ơn đến Trung Tâm CSE, trường Đại Học Dân Lập
Duy Tân thành phố Đà Nẵng đã tạo điều kiện cho tôi hoàn thành đề tài tốt
nghiệp này.
Tôi xin gửi lời cảm ơn chân thành đến gia đình, bạn bè đã luôn là
nguồn động viên to lớn, giúp đỡ tôi trong suốt quá trình tôi thực hiện đề
tài.

Đà Nẵng, tháng 6 năm 2009
Sinh viên thực hiện:

Vương Hải


LỜI CAM ĐOAN
Tôi xin cam đoan :
Những nội dung trong báo cáo này là do tôi thực hiện dưới sự
hướng dẫn trực tiếp của thầy giáo, Th.s. Phan Thanh Tao.
1.


Mọi tham khảo dùng trong báo cáo này đều được trích dẫn rõ
ràng tên tác giả, tên công trình, thời gian, địa điểm công bố.
2.

Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian
trá, tôi xin chịu hoàn toàn trách nhiệm.
3.

Sinh viên,

Vương Hải


DANH MỤC CÁC HÌNH VẼ
Hình
Hình 1.1
Hình 1.2
Hình 1.3

Tên hình
Môi trường .NET Framework
Mô hình của không gian tên System.Web.UI
Các điều khiển trong không
System.Web.UI.HtmlControls

gian

tên

Trang

Trang 4
Trang 7
Trang 8

Hình 1.4

Các điều khiển trong
System.Web.UI.Control

gian

tên

Trang 9

Hình 1.5

Hai điều khiển Rendered Control và Composite
Control

Trang 18

Hình 2.1

Kiến trúc của cơ chế kết xuất cho những điều
khiển ASP.NET
Những sự kiện điều khiển trình chủ trong
ASP.NET
Mô hình vòng đời một trang web
Vòng đời điều khiển


Trang 30

Hình 2.2
Hình 2.3
Hình 2.4

không

Trang 34
Trang 40
Trang 43


Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls và ứng dụng tạo bộ lịch vạn niên.

DANH MỤC CÁC TỪ VIẾT TẮT
STT
1
2
3
4
5
6
7
8
9

TỪ VIẾT TẮT
CLR

FCL
XML
MSIL
JIT
HTML
UI
IIS
CSS

MÔ TẢ
Common Language Runtime
.NET Framework Class Library
Extensible Markup Language
Microsoft Intermediate Language
Just In Time
HyperText Markup Language
User Interface
Internet Information Services
Cascading Style Sheets


Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls và ứng dụng tạo bộ lịch vạn niên.

MỤC LỤC
TỔNG QUAN VỀ .NET FRAMEWORK VÀ SERVER CONTROL........1
I. .NET FRAMEWORK................................................................................................1
II. GIỚI THIỆU VỀ ASP.NET........................................................................................4
III. ĐIỀU KHIỂN TRÌNH CHỦ (SERVER CONTROL)................................................4
III.1.
Điều khiển gốc...........................................................................................5

III.1.1. Không gian tên System.Web.UI..................................................................5
III.1.2. Không gian tên System.Web.UI.HtmlControls...........................................6
III.1.3. Không gian tên System.Web.UI.WebControls............................................8
III.2.
User Controls...........................................................................................13
III.2.1. Cấu trúc User Control..............................................................................14
III.2.2. Phương pháp xây dựng User Control......................................................15
III.3.
Custom Control........................................................................................17
III.3.1. Phương pháp xây dựng Custom Server Control......................................17
III.3.2. Các bước xây dựng Custom Server Control............................................19
III.4.
Sự khác nhau cơ bản giữa User Control và Custom Control..................23

PHƯƠNG PHÁP XÂY DỰNG CÔNG CỤ SERVER CONTROL...........25
I.

THUỘC TÍNH..........................................................................................................25
I.1.
Giới thiệu về thuộc tính...............................................................................25
I.2.
Cách xây dựng thuộc tính............................................................................26
II. PHƯƠNG THỨC.....................................................................................................28
II.1. Phương thức Render()..................................................................................29
II.2. Lớp HtmlTextWriter....................................................................................31
III. SỰ KIỆN..................................................................................................................33
III.1.
Nhu cầu cho những sự kiện trong ASP.NET...........................................33
III.2.
Mô hình sự kiện .NET Framework..........................................................34

III.3.
Giao diện InamingContainer....................................................................37
III.4.
Giao diện IpostBackDataHandler............................................................37
III.5.
Giao diện IpostBackEventHandler...........................................................39
III.6.
Vòng đời điều khiển.................................................................................41

XÂY DỰNG CONTROL SERVER CHO BỘ LỊCH VẠN NIÊN.............47
I. GIỚI THIỆU VỀ BỘ LỊCH VẠN NIÊN.................................................................47
II. PHÂN TÍCH CHƯƠNG TRÌNH LỊCH VẠN NIÊN...............................................47
II.1. Lớp perpetual_calendar...............................................................................48
II.2. Lớp Calendar_Month...................................................................................50
II.3. Lớp Calendar_Month_Data.........................................................................55
II.4. Lớp Calendar_Daily.....................................................................................56
II.5. Lớp Calendar_Week.....................................................................................58

TRIỂN KHAI VÀ CÀI ĐẶT ỨNG DỤNG.................................................60
I. Lịch tháng không kết nối cơ sở dữ liệu...................................................................60
II. Lịch tháng có kết nối cơ sở dữ liệu.........................................................................61
III. Lịch tuần..................................................................................................................61


Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls và ứng dụng tạo bộ lịch vạn niên.

IV. Lịch ngày..................................................................................................................61
V. Một số thuộc tính của control perpetual_calendar..................................................62

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN....................................................63

I. Kết luận....................................................................................................................63
II. Hướng phát triển......................................................................................................63


Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls và ứng dụng tạo bộ lịch vạn niên.

LỜI MỞ ĐẦU
Ngày nay ngành Công Nghệ Thông Tin phát triển như vũ bão, đặc biệt là trong
ngành công nghệ phần mềm. Trong lĩnh vực phát triển ứng dụng Web, để xây dựng
các ứng dụng một cách nhanh chóng Microsoft cho ra đời công nghệ .NET. Với
ASP.NET là một phần trong .NET ta có thể xây dựng các ứng dụng Web một cách
nhanh chóng và hiệu quả. Ngoài ra, để xử lý công việc ngày một nhiều, các công cụ
hỗ trợ cho việc phát triển phần mềm liên tục ra đời nhằm trợ giúp người phát triển
phần mềm giảm bớt khó khăn. Tuy nhiên, những công cụ hỗ trợ đó có thể vẫn chưa
đáp ứng công việc của những lập trình viên nên họ có thể xây dựng cho mình những
công cụ điều khiển mở rộng để đáp ứng được nhu cầu của họ và của công ty.
Để người phát triển phần mềm có thể xây dựng và tạo ra được các công cụ sử
dụng chung cho công ty hoặc cho cá nhân người lập trình, nên em chọn đề tài:
“Nghiên cứu phương pháp xây dựng công cụ web server controls ASP.NET và
ứng dụng tạo bộ lịch vạn niên”.
Nội dung của đề tài gồm có 4 chương:
Chương 1: Tổng quan về .Net Framework và server control.
Trong chương này, em giới thiệu về .NET Framework, ASP.NET và tổng quan
về server control, cách xây dựng User Control và Custom Control. So sánh sự khác
nhau giữa User Control và Custom Control.
Chương 2: Phương pháp xây dựng công cụ server control.
Trong chương này, em trình bày về cách xây dựng thuộc tính, phương thức và
xây dựng sự kiện cho Custom Control. Đưa ra các giao diện của các sự kiện, từ đó có
thể kế thừa các sự kiện cơ sở để xây dựng nên sự kiện cho control.
Chương 3: Xây dựng control server cho bộ lịch vạn niên.

Sau một thời gian được thầy giáo hướng dẫn và tham khảo các tài liệu có liên
quan đến đề tài. Trong quá trình thực hiện đề tài không tránh được những thiếu sót
nên em rất mong nhận được sự đóng góp ý kiến của các thầy cô giáo và tất cả các bạn
để đề tài của em được hoàn chỉnh hơn.

Sinh viên thực hiện: Vương Hải, lớp 07TLT

Trang iii


Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls và ứng dụng tạo bộ lịch vạn niên.

TỔNG QUAN
Đặt vấn đề
Hiện nay web ASP.NET được sử dụng rộng rãi khắp mọi nơi. Vì vậy, việc sử
dụng các điều khiển mở rộng cho ASP.NET là rất cần thiết cho những người lập trình
để họ có thể xây dựng ứng dụng một cách nhanh chóng.
Em chọn đề tài này với lý do là ôn lại kiến thức đã được học, hiểu sâu về hệ thống
của chương trình và nâng cao khả năng lập trình của mình, một phần giúp cho người
phát triển phần mềm xây dựng nhanh chóng các điều khiển mở rộng để đáp ứng được
nhu cầu của người sử dụng.
Mục đích
Nhằm giúp cho những người phát triển phần mềm hiểu rõ hơn về các control
được xây dựng trên nền tảng cở sở nào và tự họ có thể xây dựng các điều khiển
Custom Control trên web, sử dụng các điều khiển mở rộng một cách nhanh chóng và
hiệu quả. Em xây dựng công cụ calendar vạn niên như lên lịch cho ngày, cho tháng,
sử dụng lịch vạn niên,… nhằm giúp cho người phát triển dễ dàng nhanh chóng trong
việc xây dựng phần mềm khi có nhu cầu sử dụng lịch vạn niên.
Để xây dựng đề tài này, em sử dụng các ngôn ngữ :
Visual Studio.Net 2005 (ASP.Net, C#).

Phương pháp nghiên cứu
Nghiên cứu tài liệu về Custom Control của ASP.NET và triển khai xây dựng
ứng dụng thực nghiệm cho Web Server Control. Đưa ra các giải pháp từ lý thuyết để
ứng dụng vào thực tiễn.

Sinh viên thực hiện: Vương Hải, lớp 07TLT

Trang iv


Đề tài: Nghiên cứ phương pháp xây dựng Web Server Controls và ứng dụng tạo bộ lịch vạn niên.

CHƯƠNG I

TỔNG QUAN VỀ .NET FRAMEWORK VÀ
SERVER CONTROL
.I

.NET FRAMEWORK

.NET Framework là hạ tầng cơ bản được chuẩn hóa, độc lập ngôn ngữ lập trình,
cho phép ta xây dựng, tích hợp, biên dịch, triển khai, chạy các dịch vụ Web, XML,
tiện ích hay thực thi chương trình đa cấu trúc (phát triển bằng các ngôn ngữ lập trình
hỗ trợ .NET) trên hệ điều hành có cài đặt .NET Framework.
.NET Framework gồm có hai thành phần chính là Common Language Runtime
(CLR) và .NET Framework Class Library (FCL):
 CLR là thành phần chính của .NET Framework, quản lý mã (Code) và có
thể thực thi của chương trình, quản lý các tiến trình, quản lý các tiểu trình
(Threading), quản lý bộ nhớ, cung cấp dịch vụ để biên dịch, tích hợp và tác vụ
truy cập từ xa. CLR được xem như máy ảo .NET, nó có thể kiểm soát, nạp và

thực thi chương trình.
 FCL bao gồm tất cả các dịch vụ như giao tiếp người sử dụng, điều khiển
truy cập dữ liệu, XML, Threading, bảo mật,…
FCL cung cấp các lớp, giao tiếp và các kiểu giá trị, phương thức truy cập và chức
năng chính của hệ thống như: Ms.C#, Ms.VB, Ms.Jscript, Ms.Vsa, Ms.Win32,
System:
 Ms.C#: Cung cấp các lớp hỗ trợ biên dịch và phát sinh mã khi sử dụng ngôn
ngữ lập trình C#.
 Ms.VB: Cung cấp các lớp hỗ trợ biên dịch và phát sinh mã khi sử dụng
ngôn ngữ lập trình VB.NET.
 Ms.Jscript: Cung cấp các lớp hỗ trợ biên dịch và phát sinh mã khi sử dụng
ngôn ngữ lập trình J#.
 Ms.Vsa: Cung cấp các giao tiếp cho phép ta tích hợp với các kịch bản
của .NET Framework vào ứng dụng khi biên dịch hay thực thi.
 Ms.Win32: Cung cấp hai lớp giao tiếp trực tiếp với tài nguyên của hệ điều
hành và System Registry.
 System: Bao gồm các lớp cơ sở dùng để định nghĩa giá trị, tham chiếu, biến
cố, giao tiếp, thuộc tính và kiểm soát ngoại lệ. Ngoài ra, một số lớp khác cung
cấp các dịch vụ chuyển đổi kiểu dữ liệu, tham số, tính toán, xử lý và truy cập
từ xa.

Sinh viên thực hiện: Vương Hải, lớp 07TLT

Trang 1


Đề tài: Nghiên cứ phương pháp xây dựng Web Server Controls và ứng dụng tạo bộ lịch vạn niên.

Với phần quản lý mã (code) bao gồm hai loại :
 Manager Code: Bao gồm những chương trình được tạo ra từ các ngôn ngữ

lập trình có hỗ trợ .NET.
 Unmanager Code: Là những chương trình được tạo ra từ các ngôn ngữ lập
trình ngoài .NET.
.NET Framework còn được gọi là môi trường tương tác với hệ điều hành cho các
ứng dụng. Ta có mô hình minh họa sự tương tác đó như sau:

Applications, Utilities
FCL
CLR

Operation
System

Visual Studio .NET IDE

Hình 1.1. Môi trường .NET Framework
.NET Framework có những đặc điểm chính như:
1. CLR.
2. FCL.
3. Common Type System.
4. Metadata and Self-Describing Components (siêu dữ liệu và tự đặc tả thành
phần).
5. Cross-Language Interoperability (trao đổi và sử dụng).
6. Assemblies (đơn vị phân phối).
7. Application Domains (miền ứng dụng).
8. Runtime Host (trung tâm thi hành).

Sinh viên thực hiện: Vương Hải, lớp 07TLT

Trang 2



Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls và ứng dụng tạo bộ lịch vạn niên.

 CLR là môi trường thi hành, nơi cung cấp dịch vụ để thực hiện, quản lý bộ
nhớ, tiểu trình cho các ứng dụng hỗ trợ bởi .NET.
1. Quản lý quá trình thực thi :
Để quản lý quá trình thực thi của chương trình, CLR thực hiện : Chọn
trình biên dịch tương ứng với ngôn ngữ lập trình, biên dịch ứng dụng sang
tập tin MSIL, biên dịch từ mã định dạng MSIL sang mã máy bằng trình JIT
(Just In Time) rồi sau đó CLR cung cấp cơ sở hạ tầng để thực thi chương
trình.
2. Quản lý bộ nhớ :
Tự quản lý bộ nhớ là một trong những dịch vụ mà CLR cung cấp trong
quá trình thực thi chương trình. Trình thu gom quản lý bộ nhớ đã cấp cho
một tiến trình rồi sau đó tự động thu lại khi chương trình kết thúc.
 FCL: Bao gồm các thư viện lớp cơ sở cho phép sử dụng để thực hiện mọi
tác vụ liên quan đến giao diện, Internet, cơ sở dữ liệu, hệ điều hành,…
 Common Type System: Đưa ra các quy tắc cho phép khai báo, sử dụng và
quản lý kiểu dữ liệu trong quá trình thực thi. Ngoài ra, nó còn cung cấp các
tiêu chuẩn cho phép quá trình tương tác giữa các ngôn ngữ lập trình với nhau.
o Thiết lập khung cho phép tương tác giữa các ngôn ngữ, mã an toàn, tối
ưu hóa xử lý.
o Cung cấp mô hình hướng đối tượng nhằm hỗ trợ quá trình cài đặt đa
ngôn ngữ trong ứng dụng.
o Định nghĩa các quy tắc mà ngôn ngữ lập trình phải tuân theo và hỗ trợ
trình chuyển đổi và bảo đảm đối tượng được tạo ra từ ngôn ngữ này có
thể tương tác với ngôn ngữ khác.
o
Metadata and Self-Describing Components: .NET Framework cung cấp

giải pháp chuyển đổi cho phép khai báo thông tin cho mọi Module và
Assembly (có thể là .EXE hoặc .DLL). Những thông tin này được gọi là siêu
dữ liệu và tự mô tả.
o
Cross-Language Interoperability: hỗ trợ tiến trình trao đổi và sử dụng
giữa các ngôn ngữ với nhau. Tuy nhiên, hỗ trợ này chỉ đảm bảo mã khi người
viết sử dụng các ngôn ngữ trong .NET.
o
Assemblies: Là tập các kiểu dữ liệu và tài nguyên được đóng gói dạng
từng đơn vị chức năng. Assemblies chính là các đơn vị chủ yếu dùng để triển
khai, điều khiển phiên bản, thành phần sử dụng lại, như các tập tin .EXE,
.DLL.
o
Application Domain: Miền ứng dụng do CLR quản lý nhằm cách ly
nhiều ứng dụng đang thi hành trên cùng một máy.
o Mỗi ứng dụng sẽ được nạp vào tiến trình tách biệt mà không ảnh hưởng
đến ứng dụng khác. Với kỹ thuật kiểu mã an toàn Application Domains
bảo đảm đoạn mã đang chạy trong miền ứng dụng độc lập với các tiến
trình của ứng dụng khác trên cùng một máy.

Sinh viên thực hiện: Vương Hải, lớp 07TLT

Trang 3


Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls và ứng dụng tạo bộ lịch vạn niên.

o Khi tạm dừng từng thành phần thì sẽ không dừng toàn bộ tiến trình. Với
trường hợp này, nó cho phép loại bỏ đoạn mã đang chạy trong ứng dụng
đơn.

o Nó cho phép ta cấu hình, định vị, cấp quyền hay hạn chế quyền sử dụng
tài nguyên đang thi hành.
o Sự cách ly này cho phép CLR ngăn cấm truy cập trực tiếp giữa các đối
tượng của những ứng dụng khác nhau.
o
Runtime Hosts: Là trung tâm thi hành cho phép nạp ứng dụng vào tiến
trình, CLR hỗ trợ cho phép nhiều loại ứng dụng khác nhau cùng chạy trong
một tiến trình.
o Mỗi loại ứng dụng cần đoạn mã để khởi động được gọi là Runtime
Hosts.
o Runtime Hosts nạp kênh thi hành vào tiến trình và tạo ra Application
Domains rồi thi hành ứng dụng trong miền đó.

.II

GIỚI THIỆU VỀ ASP.NET

ASP đã được nâng cấp từ phiên bản ASP 1.0, ASP 2.0, ASP.NET 1.0, ASP.NET 1.1
rồi đến ASP.NET 2.0 và bây giờ là ASP.NET 3.0.
Từ khi công nghệ Ms.NET ra đời, 4 ngôn ngữ lập trình chính là Visual Basic.NET,
C#, C++.NET và J# mở ra một kỷ nguyên mới trong công nghệ phần mềm, chúng cho
phép lập trình viên có thể xây dựng một ứng dụng chạy trên nền .NET bằng một trong
các ngôn ngữ trên.
Với sự chuẩn hóa cao dựa vào bộ khung (Framework), Microsoft cho phép những
ứng dụng được viết bằng một trong những ngôn ngữ Visual Basic.NET, C#, C++.NET
và J# có thể biên dịch ra tập tin định dạng MSIL (Microsoft Intermediate Language)
có thể chạy trên Framework mà không cần trình thực thi riêng biệt cho mỗi ngôn ngữ
như những ngôn ngữ lập trình trước đây là VB 6.0, C++ 6.0, Visual J++ 6.0.
ASP.NET 2.0 là phiên bản kế tiếp của ASP.NET 1.1 với nhiều đặc điểm mới về cấu
trúc, cơ chế thực hiện, quản lý hệ thống, tập điều khiển đa dạng và tương tác với cơ

sở dữ liệu trên .NET Framework 2.0, cho phép ta xây dựng và triển khai ứng dụng
Web tốt hơn.

.III ĐIỀU KHIỂN TRÌNH CHỦ (SERVER CONTROL)
ASP.NET cung cấp hai loại chính điều khiển trình chủ là điều khiển trình chủ
HTML (HTML Server Control) và điều khiển trình chủ ASP.NET (ASP.NET Server
Control).
Điều khiển trình chủ HTML tiền thân là thẻ HTML có khai báo thuộc tính runnat=
“server”.
<input id=”Button1” type=”submit” value=”button” runat=”server”/>
Điều khiển trình chủ ASP.NET có cú pháp tương tự:
Sinh viên thực hiện: Vương Hải, lớp 07TLT

Trang 4


Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls và ứng dụng tạo bộ lịch vạn niên.

<asp:Button ID=”Button1” runat=”server” Text=”Button”/>
Ứng với hai loại điều khiển trình chủ trên, khi làm việc với mã C# trong tập tin
code behind, có thể sử dụng phương thức và thuộc tính cũng khác nhau.
Mặc dù cả hai khai báo trên có khác nhau về cú pháp, khi thực thi trên trình chủ và
trả kết quả về cho trình khách là trình duyệt thì chúng đều kết xuất ra thẻ HTML
tương ứng. Điều này có nghĩa là cùng điều khiển trình chủ kiểu button thì khi kết
xuất ra thẻ HTML cho trình duyệt là thẻ HTML loại submit tương tự như sau:
<input id=”Button1” type=”submit” value=”button”/>
Ngoài ra điều khiển trình chủ HTML và ASP.NET 2.0 đều kế thừa từ lớp cơ sở
Control thuộc không gian tên System.Web.UI.
.III.1.


Điều khiển gốc

Khi viết một chương trình Web Form, cần phải có những nhân tố để xây dựng nên
một trang Web, tiêu biểu là các không gian tên trong .NET Framework:
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
Ta có mô hình không gian tên System.Web.UI ở dưới đây:

Hình 1.2. Mô hình của không gian tên System.Web.UI
.III.1.1. Không gian tên System.Web.UI
Không gian tên System.Web.UI là điều khiển gốc. Nó chứa đựng trong lớp
Control, với sự ủy quyền lớp cha cho tất cả các đối tượng mà chúng muốn tự gọi lại
các điều khiển. Trực tiếp được kế thừa từ lớp Control trong không gian tên là một tập
hợp của những lớp chuyên dùng thực thi Web Form thông qua lớp Page, điều khiển
người sử dụng thông qua lớp UserControl, và những điều khiển kí tự LiteralControl.

Sinh viên thực hiện: Vương Hải, lớp 07TLT

Trang 5


Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls và ứng dụng tạo bộ lịch vạn niên.

Lớp Control nằm trong không gian tên System.Web.UI, khi sử dụng, ta chỉ kế thừa
lại nó.
.III.1.2. Không gian tên System.Web.UI.HtmlControls
Những điều khiển trong System.Web.UI.HtmlControls có khả năng nắm bắt sự tồn
tại của nội dung HTML và thi hành nó như một trình điều khiển với việc thêm vào
thuộc tính runat="server". Ví dụ như thiết kế một textbox, ta xây dựng như sau:

<input type="text" id="name" runat="server"/>
ASP.NET là dụng cụ phân tích có nhiệm vụ quan trọng cho phép ánh xạ thẻ HTML
đến chính xác loại điều khiển trong System.Web.UI.HtmlControls khi nó thấy thuộc
tính này đã được đánh dấu. Ví dụ thêm một trường hợp của điều khiển HtmlInputText
vào bộ điều khiển Web Form.
Những điều khiển này tự nó thiết lập, đề cập đến trạng thái, đưa ra những sự kiện,
tự nó cho phép thao tác theo chương trình, và cung cấp những dịch vụ làm tăng thêm
những giá trị khác. Danh sách đầy đủ của những điều khiển HTML sẵn có trong
không gian tên System.Web.UI.HtmlControls được mô tả như sau:

Hình 1.3. Các điều khiển trong không gian tên
System.Web.UI.HtmlControls

Sinh viên thực hiện: Vương Hải, lớp 07TLT

Trang 6


Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls và ứng dụng tạo bộ lịch vạn niên.

Những thẻ HTML được ánh xạ đến những bản sao của điều khiển trình chủ HTML
(HTML Server Control).
Thẻ HTML

Điều khiển trình chủ HTML

<form>

HtmlForm


<input type="text">

HtmlInputText

<input type="password">

HtmlInputText

<input type="radio">

HtmlInputRadioButton

<input type="checkbox">

HtmlInputCheckBox

<input type="submit">

HtmlInputButton

<input type="hidden">

HtmlInputHidden

<input type="button">

HtmlInputButton

<input type="reset">


HtmlInputButton

<input type="image">

HtmlInputImage

<input type="file">

HtmlInputFile

<button>

HtmlButton

<select>

HtmlSelect

<textarea>

HtmlTextArea

<img>

HtmlImage

<a>

HtmlAnchor


<table>

HtmlTable

<tr>

HtmlTableRow

<td>

HtmlTableCell

All other tags (Tất cả các thẻ khác)

HtmlGenericControl

.III.1.3. Không gian tên System.Web.UI.WebControls
Giống như các điều khiển HTML, các điều khiển Web chiếm giữ một không gian
tên riêng biệt trong .NET Framework. Trong không gian tên
System.Web.UI.WebControls có các điều khiển như mô hình sau:

Sinh viên thực hiện: Vương Hải, lớp 07TLT

Trang 7


Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls và ứng dụng tạo bộ lịch vạn niên.

Hình 1.4. Các điều khiển trong không gian tên System.Web.UI.Control
Những điều khiển trong không gian tên System.Web.UI.WebControls được phân

loại vào trong một vài nhóm chính:
Simple Control (Đơn giản ).
List Control (Danh sách).
Rich Control (Đa năng).
Validation Control (Kiểm tra).
a. Simple Control
Những thẻ HTML ánh xạ đến những bản sao Web Control:

Thẻ HTML

Simple Web Control

<input type="text">

TextBox w/TextMode=Single

<input type="password">

TextBox w/TextMode=Password

<textarea>

TextBox w/TextMode=MultiLine

Sinh viên thực hiện: Vương Hải, lớp 07TLT

Trang 8


Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls và ứng dụng tạo bộ lịch vạn niên.


Thẻ HTML

Simple Web Control

<input type="checkbox">

CheckBox

<input type="radio">

RadioButton

<input type="submit">

Button

<input type="image">

ImageButton

<button>

Button

<select>

DropDownList

<select size=3>


SelectList w/Rows=4

<textarea>

HtmlTextArea

<img>

Image

<a>

HyperLink, LinkButton

<table>

Table

<tr>

TableRow

<td>

TableCell

<table>

Panel


<span>

Label

b. Điều khiển danh sách (List Controls)
ASP.NET cung cấp cho ta một số thành phần điều khiển danh sách giúp giảm thiểu
công việc lập trình thủ công và tốn nhiều thời gian như trước đây chỉ để tạo danh
sách. Các thành phần điều khiển danh sách hoạt động phía trình chủ và sinh mã
HTML trả về phía trình khách.
Thành phần điều khiển này cho phép ta hiển thị mọi loại dữ liệu kiểu danh sách. Ví
dụ như bảng dữ liệu (table), khung nhìn (view), liệt kê… Điều khiển danh sách còn
cho phép ta ràng buộc với các thành phần dữ liệu trên server. Sử dụng List Control ta
có thể hiển thị và sắp xếp dữ liệu theo cách đơn giản mà ít phải viết mã lệnh nhất.
List Control cung cấp những khả năng được tăng cường bên ngoài của những điều
khiển đơn (simple control) bởi việc phát sinh ra những nội dung được sử dụng từ
nguồn dữ liệu bên ngoài. Chúng sắp xếp có thứ tự từ các điều khiển đơn như
CheckBoxList và RadioButtonList, chúng xây dựng một nhóm các thẻ HTML đơn
Sinh viên thực hiện: Vương Hải, lớp 07TLT

Trang 9


Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls và ứng dụng tạo bộ lịch vạn niên.

giản, đến nhiều điều khiển phức tạp như DataGrid, DataList, và Repeater, với sự hỗ
trợ của một tùy chỉnh cao là UI. List controls là một dụng cụ chìa khóa trong bộ dụng
cụ phát triển của ASP.NET bởi vì chúng cung cấp phần lớn chức năng khi giao nhiệm
vụ xây dựng một trang web hướng dữ liệu và thực thi nhanh.
Ta có thể khai báo các lớp của các List Control như ví dụ sau:

using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace Project_perpetual_calendar
{
public class ListControls : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.Repeater Repeater1;
}
}
Trong ASP.NET cung cấp rất nhiều loại List Control khác nhau, ta có thể sử dụng
chúng để trình bày dữ liệu:
Tên điều khiển

Mô tả

<DropDownList>

Tạo ra phần tử <select> có thuộc tính size=”1”,
có thể trình bày danh sách dữ liệu bằng cách sử
dụng <ASP: ListItem> hay phương thức
DataBinding.

<ListBox>

Tạo ra phần tử <select> có thuộc tính size=”x”,
có thể trình bày danh sách và cho phép người
sử dụng chọn nhiều phần tử. Có thể trình bày
dữ liệu bằng cách sử dụng <ASP: ListItem>

hay phương thức DataBinding.

<CheckBoxList>

Tạo ra HTML<Table> hay danh sách chứa các
CheckBox.

<RadioButtonList>

Tạo ra HTML<Table> hay danh sách chứa các
RadioButton.

<ListItem>

Không thật sự là một Control, nhưng đối tượng
này cho phép tạo ra một phần tử trong một List
Control. Tùy thuộc vào loại List Control mà
phần tử này tạo ra cho phù hợp. Ví dụ đối với
ListBox thì phần tử là <option> hay checkbox
trong CheckBoxList.

Sinh viên thực hiện: Vương Hải, lớp 07TLT

Trang 10


Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls và ứng dụng tạo bộ lịch vạn niên.

Tên điều khiển


Mô tả

<Repeater>

Cho phép liệt kê dữ liệu trong DataSource hay
mảng dữ liệu dưới nhiều góc độ khác nhau.

<DataGrid>

Cho phép trình bày, chọn, kích hoạt hoặc sắp
xếp từng cột dữ liệu từ bảng dữ liệu, kết quả
xuất ra trình duyệt là thẻ HTML dạng <table>.

<DataList>

Cho phép trình bày dữ liệu dạng liệt kê hoặc
dạng bảng.

c. Điều khiển đa năng (Rich Controls)
Các điều khiển đa năng thường không dễ dàng xây dựng bằng các phần tử HTML
đơn giản. Điều khiển đa năng thường hình thành bởi sự kết hợp của các đoạn mã
JavaScript cùng với thẻ HTML tạo nên những hiệu ứng đặc biệt.
Rich Control phát sinh giao diện người dùng (UI) phức tạp từ số lượng cực tiểu
của đầu vào. Điều khiển Calendar chuẩn, TreeView, ImageGenerator là những ví dụ
của Rich Control.
d. Điều khiển kiểm tra (Validation controls)
Khi làm việc với Form HTML trong những ứng dụng Web là kiểm tra giá trị dữ
liệu do người dùng nhập vào. Các trang tài liệu phía trình duyệt luôn luôn cần kiểm
tra rằng giá trị dữ liệu phải rơi vào một phạm vi nào đó, ngày tháng phải hợp khuôn
dạng, chuỗi không được rỗng,…

Có hai cách kiểm tra giá trị trong ứng dụng Web, kiểm tra phía trình duyệt thường
dùng JavaScript và có sự phản hồi nhanh hơn. Kiểm tra phía trình chủ tốn thời gian
hơn bởi cần hoàn tất một vòng giao tiếp giữa trình duyệt và trình chủ Web Server.
ASP.NET cung cấp các điều khiển kiểm tra gọi là Validation Controls có thể dùng
để sinh mã kiểm tra ở cả hai phía client và server.
Validation controls đơn giản hóa trạng thái nguyên thuỷ thông qua đầu vào của
Web Form. Sự thông qua đó có thể xuất hiện phía trình khách cho những bộ trình
duyệt có khả năng như JavaScript. Nó cũng có thể xảy ra để viết những tập lệnh tuỳ
chọn được công nhận để sử dụng điều khiển CustomValidator.
Validation Control

Mô tả

RequiredFieldValidator

Kiểm tra cho một giá trị null hay giá trị rỗng
trong một trình điều khiển.

CompareValidator

So sánh những toán tử khác nhau của hai trình
điều khiển. Tức là cho phép so sánh giá trị của

Sinh viên thực hiện: Vương Hải, lớp 07TLT

Trang 11


Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls và ứng dụng tạo bộ lịch vạn niên.


Validation Control

Mô tả
điều khiển này với giá trị của điều khiển khác
hay một giá trị cụ thể. Kiểu dữ liệu và phép toán
do ta tự cung cấp. Trong trường hợp giá trị rỗng
thì điều khiển không thực hiện.

RangeValidator

Bảo đảm những giá trị của một trình điều khiển
rơi vào trong một phạm vi đặc biệt. Tức là kiểm
tra giá trị trong điều khiển là chuỗi hay là số.
Nếu giá trị là rỗng thì chúng sẽ không thực hiện.

RegularExpressionValidator

Được sử dụng những biểu thức thông thường để
thông qua đầu vào của điều khiển trình chủ.
Kiểm tra giá trị trong điều khiển có phù hợp với
biểu thức cho trước. Trong trường hợp giá trị
rỗng thì không thực hiện.

CustomValidator

Cho phép lập trình viên chỉ định phía trình khách
và phía trình chủ thông qua những thủ tục để
ràng buộc đầu vào trình điều khiển. Thực hiện
việc kiểm tra dữ liệu nhập cả hai phía (Client và
Server) do người dùng định nghĩa. Trong trường

hợp giá trị rỗng thì điều khiển này không thực
hiện.

ValidationSummary

Hiển thị những tóm tắt của tất cả các thông điệp
lỗi đã phát sinh bởi sự thông qua các điều khiển
trên Web Form.

.III.2. User Controls
User Control là thành phần có sẵn của ASP.NET, cho phép thiết kế điều khiển dựa
trên những kỹ thuật đã lập trình của trang ASP.NET.
Những điều khiển của Microsolt.NET là tất cả các lớp được kế thừa từ một nền
tảng chung gọi là UserControl. Lớp này có tất cả chức năng cơ bản cho một điều
khiển đồ hoạ sẽ được sử dụng trên một Windows Form hoặc Web Form. Tất cả được
cài đặt sẵn trong những điều khiển thừa kế từ lớp cơ sở. Cũng có thể kế thừa được
điều này ở các lớp cơ sở này để tạo ra những điều khiển của mình. Khi kế thừa được
từ lớp UserControl, nó sẽ tự động cung cấp cho lập trình viên với những thuộc tính và
những sự kiện nhất định.
Điều khiển người dùng tuỳ chỉnh, những điều khiển dùng lại được, và chúng sử
dụng những kỹ thuật giống như được sử dụng HTML và những trình điều khiển Web.
Chúng cung cấp một cách dễ dàng cho sự phân chia và những giao diện người dùng

Sinh viên thực hiện: Vương Hải, lớp 07TLT

Trang 12


Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls và ứng dụng tạo bộ lịch vạn niên.


chung sử dụng lại qua những ứng dụng ASP.NET. Chúng sử dụng giống như mô hình
lập trình Web Forms.
Những trình điều khiển trong ASP.NET cung cấp nhiều chức năng, nhưng chúng
không thể bao trùm mọi trạng thái. Web User Controls đang cho phép ta dễ dàng định
nghĩa những điều khiển khi ta cần chúng cho những ứng dụng, sử dụng như những
phương pháp chương trình hóa giống như ta thường viết những trang Web Forms. Có
thể chuyển đổi một trang Web Forms thành một Web User Control với vài sự cải tiến
trong đó.
User Controls là một dạng của điều khiển hỗn hợp. Có thể sử dụng để đóng gói các
chức năng bên trong ASP.NET. Nói chung, điểm trọng tâm của sự phát triển User
Control gói gọn logic ở trong một giao dịch cụ thể về ứng dụng có thể dùng chung
bên trong một ứng dụng đơn hay bên trong một tập thể của những ứng dụng có liên
quan.
Cấu trúc User controls tương tự để xây dựng những chức năng trong Web Form
ASP.NET, trong khi chúng hỗ trợ sự phát triển thông qua sự kiểm soát kéo và thả các
điều khiển từ Toolbox trong Visual Studio.NET lên trên giao diện thiết kế các điều
khiển của người sử dụng.
Một User Control được pha trộn những thẻ HTML và những điều khiển trình chủ
trong trang .aspx, trừ khi chúng được lưu trữ bên trong dữ liệu .ascx. Cũng như Web
Forms, User Contrrols cũng hỗ trợ sự ngăn cách của những thẻ HTML và UI từ trang
lôgic thông qua cơ chế mã ẩn (code behind). Khung cảnh thiết kế của một User
Control gần như đồng nhất với Web Forms, giống như ví dụ của “MenuUserControl.
ascx” sau:

Sinh viên thực hiện: Vương Hải, lớp 07TLT

Trang 13


Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls và ứng dụng tạo bộ lịch vạn niên.


Ta sẽ thực thi một User Control điển hình khi ta muốn xây dựng một điều khiển mà
nó yêu cầu một con số hợp lý của việc cố gắng mô tả một số lượng tối thiểu những
thẻ HTML. Tùy chọn này dễ dàng cho người thiết kế UI để đi ngược trở vào bên
trong và điều chỉnh đầu ra của điều khiển được sử dụng trong giao diện thiết kế trang
Web của Visual Studio.NET khi được so sánh đến Custom Server Control, được thiết
kế trong code theo chương trình. Ở đây là danh sách của những đặc điểm quan trọng
khác của User Controls:
 User Control là cách thường dùng để đóng gói HTML và phát triển module
web. Chúng là một trong những phương tiện của việc thay thế sử dụng thư
viện các tập tin IIS.
 User Controls hỗ trợ những thuộc tính và những phương thức có thể được
thiết lập cả hai trong HTML như thuộc tính hoặc code behind của trang .ascx.
 User Controls có thể lưu trữ trong ASP.NET làm bộ đệm cơ sở dựa vào một
số tham số khác nhau để thực hiện nhanh ứng dụng web.
 Những thẻ nhất định không được cho phép vào trong một số User Control
dạng đặc biệt, là các thẻ <HTML>, <HEAD>, <BODY>, và <FORM>.Việc sử
dụng những thẻ này sẽ can thiệp đến chức năng của trang .aspx.
 Thẻ User control khai báo cần phải xuất hiện giữa những trang chủ .aspx bắt
đầu và kết thúc những thẻ <FORM> để bảo đảm quá trình hoạt động đúng
cách thức.
.III.2.1. Cấu trúc User Control
Một Web User Control tương tự hoàn toàn như một Web Forms, với một trang giao
diện người dùng và một file code behind. Trang giao diện người dùng khác đến từ
một trang .aspx trong các cách sau:
 Phần đuôi mở rộng phải là .ascx

Sinh viên thực hiện: Vương Hải, lớp 07TLT

Trang 14



Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls và ứng dụng tạo bộ lịch vạn niên.

 Điều khiển người dùng không có phần tử <HTML>, <BODY>, và
<FORM> trong nó.
Trong mọi cách khác, một điều khiển User Controls cũng như một trang Web
Forms. Có thể sử dụng những phần tử HTML và những Web controls giống như trên
một User Control mà ta làm trên một trang chuẩn Web Forms. Ví dụ, nếu ta đang tạo
ra một điều khiển User Control để sử dụng như một thanh công cụ, ta có thể đặt một
loạt nút lệnh của trình điều khiển Web lên trên điều khiển và tạo ra những sự kiện cho
những nút lệnh đó.
.III.2.2. Phương pháp xây dựng User Control
a. Tạo một User Control
Cú pháp sử dụng để tạo ra một điều khiển User Control tương tự như cú pháp sử
dụng tạo ra những trang Web Forms (.aspx). Sự khác nhau duy nhất là User Control
không chứa các phần tử <HTML>,<BODY>, và <FORM> từ trang chủ Web Form.
Cách tạo một User Control, thực hiện theo các bước sau:
1.

Mở một văn bản hoặc trình soạn thảo HTML, và tạo một khối mã đưa
vào đó tất cả các thuộc tính, phương thức, và sự kiện. Sau đây là đoạn code
ví dụ kích vào button1 thì sẽ xuất hiện “Chào các bạn.”:

<script language="C#" runat="server">
public void button1_Click(object sender, EventArgs e)
{
label1.Text = "Chào các bạn.";
}
</script>

2.
Tạo giao diện cho User Control. Ví dụ tạo một label và một Button:
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>

Text="Button" /></div>
</form>
b. Để sử dụng User Control trong trang Web Form
Khi sử dụng User Control, cần phải nhúng chúng vào trang ASP.NET thay vì thực
thi một mình như trang ASP.NET, chính vì lẽ đó mà trang User Control có tên mở
rộng là .ascx để nhận biết chúng khi thực thi. Ta thực thi User Control như sau:
1. Tạo một trang Web Form .aspx trong Visual Studio.Net.
2. Khai báo chỉ thị @Register.
Sinh viên thực hiện: Vương Hải, lớp 07TLT

Trang 15


Đề tài: Nghiên cứu phương pháp xây dựng Web Server Controls và ứng dụng tạo bộ lịch vạn niên.

<%@ Register TagPrefix="UC" TagName="TestControl"
Src="WebUserControl.ascx" %>
3. Để sử dụng User Control trong trang Web Form, sau khi khai báo chỉ thị
@Register:
<html xmlns=" >
<head runat="server">
<title>Untitled Page</title>
</head>

<body>
<form id="form1" runat="server">
<div>
<UC:TestControl id="Test1" runat="server"/>
</div>
</form>
</body>
</html>
c. Để tạo ra trường hợp một User Control theo chương trình trong file code
behind của trang Web Form được thể hiện
Ví dụ trên khi khởi tạo khai báo một User Control trong trang Web Form ta sử
dụng chỉ thị @Register. Tuy nhiên, có thể khởi tạo một User Control động và thêm
nó vào trong trang web. Các bước sau thực hiện những công việc đó:
1. Tạo mới một trang Web Form trong Visual Studio.
2. Định hướng đến dữ liệu code behind được phát sinh cho trang Web Form.
3. Trong sự kiện Page_Load của lớp Page.
protected void Page_Load(object sender, EventArgs e)
{
Control c1 = LoadControl("WebUserControl.ascx");
Page.Controls.Add(c1);
}
d. Một User Control được xử lý
Khi một trang web yêu cầu một User Control thì:
 Việc phân tích dữ liệu .ascx được chỉ rõ trong thuộc tính Scr trong chỉ thị
@Register và phát sinh một lớp mà lớp đó xuất phát từ lớp
System.Web.UI.UserControl.
 Biên dịch User Control đó trong assembly.
 Nếu sử dụng Visual Studio, trong lúc thiết kế, Visual Studio tạo ra một dữ
liệu ở code behind cho User Control, và dữ liệu đó được biên dịch bởi người
thiết kế.


Sinh viên thực hiện: Vương Hải, lớp 07TLT

Trang 16


×