You are on page 1of 175

TRUNG TM TIN HC I HC KHOA HC T NHIN TP.

HCM
227 Nguyn Vn C - Qun 5- Tp.H Ch Minh
Tel: 8351056 Fax 8324466 Email: ttth@hcmuns.edu.vn
M ti liu: DT_NCM_LT_TLGD_ASP.NET
Phin bn 1.0 Thng 06/05



kI lIE0 h0000 0k0 0Ik00 0kI

0h0000 0h kI h0k IE0
h0c pkz0 8
lkP 0h 000 0000 wE8
0I k8P.0E

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 1/174

MC LC
GII THIU .......................................................................................................... 5
GIO TRNH L THUYT....................................................................................... 6
TI LIU THAM KHO........................................................................................... 6
Bi 1...................................................................................................................... 7
TNG QUAN V ASP.NET ...................................................................................... 7
I. Tng quan v lp trnh ng dng Web............................................................ 8
I.1. HTTP v HTML - Nn mng ca K thut lp trnh web ..................................... 8
I.2. Tm hiu cc m hnh ng dng.....................................................................10
II. Gii thiu v ASP.Net.................................................................................... 12
II.1. Tm hiu v .Net Phatform.............................................................................12
II.2. Tm hiu v .Net Framework..........................................................................12
II.3. Tm hiu v ASP.Net .....................................................................................16
II.4. Nhng u im ca ASP.Net..........................................................................16
II.5. Qu trnh x l tp tin ASPX...........................................................................17
III. Web Server ................................................................................................... 18
III.1. Internet Information Services.........................................................................18
III.2. Ci t Web Server .......................................................................................19
III.3. Cu hnh Internet Information Services...........................................................22
III.4. To cc ng dng web trn IIS......................................................................23
IV. To ng dng Web u tin.......................................................................... 24
IV.1. Khi ng MS Visual Studio .Net ....................................................................24
IV.2. To mi ng dng Web.................................................................................25
IV.3. Phn loi tp tin trong ASP.Net ......................................................................27
IV.4. Lm quen vi cc thnh phn giao din trn VS .Net .......................................28
Bi 2.................................................................................................................... 32
WEB SERVER CONTROL...................................................................................... 32
I. HTML Control ................................................................................................ 33
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 2/174
II. ASP.Net Web Control .................................................................................... 35
II.1. Asp.Net Page................................................................................................35
II.2. iu khin c bn.........................................................................................36
II.3. iu khin kim tra d liu............................................................................46
II.4. Mt s iu khin khc..................................................................................53
II.5. i tng ViewState .....................................................................................59
Bi 3.................................................................................................................... 61
CC IU KHIN LIN KT D LIU.................................................................. 61
I. iu khin DataGrid...................................................................................... 62
I.1. Cc thao tc nh dng li ...........................................................................62
I.2. X l sp xp................................................................................................67
I.3. X l phn trang...........................................................................................69
I.4. Ty bin cc ct ...........................................................................................70
I.5. Cp nht d liu trc tip trn li .................................................................74
II. iu khin DataList ...................................................................................... 79
II.1. S dng DataList hin th d liu...............................................................79
II.2. Cp nht d liu vi DataList .........................................................................83
III. iu khin Repeater ..................................................................................... 87
IV. Cc v d m rng ......................................................................................... 90
IV.1. X l o hng sp xp trong DataGrid ........................................................90
IV.2. To biu tng sp xp trong ct cho DataGrid...............................................91
IV.3. nh dng hnh thc hin th cho dng d liu tha iu kin trn DataGrid ......92
IV.4. To hiu ng chn khi r chut qua cc dng d liu ......................................93
Bi 4.................................................................................................................... 94
XY DNG LP X L D LIU.......................................................................... 94
I. Thit k tng quan........................................................................................ 96
I.1. Cu trc chi tit lp XL_BANG........................................................................98
I.2. Xy dng lp x l nghip v....................................................................... 102
I.3. S dng lp x l nghip v ........................................................................ 104
Bi 5.................................................................................................................. 108
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 3/174
XY DNG I TNG TH HIN.................................................................... 108
I. To mi i tng th hin......................................................................... 109
II. S dng i tng th hin........................................................................ 111
III. To phng thc cho i tng th hin.................................................... 112
IV. To s kin cho i tng th hin ............................................................ 113
IV.1. Thit k ..................................................................................................... 114
IV.2. X l.......................................................................................................... 114
Bi 6.................................................................................................................. 117
XY DNG V QUN L NG DNG................................................................. 117
I. i tng Request, Response..................................................................... 118
I.1. i tng Response.................................................................................... 118
I.2. i tng Request ...................................................................................... 120
II. i tng Session, Application................................................................... 122
II.1. i tng Application.................................................................................. 123
II.2. i tng Session....................................................................................... 124
III. i tng Server......................................................................................... 125
IV. i tng Cookies ...................................................................................... 125
IV.1. Gii thiu ................................................................................................... 125
IV.2. Lm vic vi Cookies................................................................................... 126
V. Tp tin qun l v cu hnh ng dng......................................................... 127
V.1. Global.asax................................................................................................. 127
V.2. Web.config................................................................................................. 128
VI. T chc & xy dng ng dng.................................................................... 133
VI.1. T chc lu tr ng dng............................................................................ 133
VI.2. Xy dng ng dng .................................................................................... 134
Bi 7.................................................................................................................. 136
WEB SERVICE ................................................................................................... 136
I. Tm hiu v Web Services ........................................................................... 137
II. Xy dng Web Services .............................................................................. 140
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 4/174
II.1. To Web Services trong VS .Net................................................................... 140
II.2. Kim tra Web Service.................................................................................. 141
III. S dng Web Service.................................................................................. 143
III.1. S dng Web Service do ngi dng xy dng ............................................. 144
III.2. S dng Web Services c cung cp min ph trn mng............................. 144
IV. Xy dng Web Services truy xut d liu................................................... 148
IV.1. Web Service: WS_KHACH_HANG.................................................................. 148
IV.2. S dng WS_KHACH_HANG......................................................................... 150
Bi 8.................................................................................................................. 152
PH LC ........................................................................................................... 152
I. C s d liu dng trong ng dng ............................................................ 153
I.1. Thit k c s d liu.................................................................................. 153
I.2. D liu th................................................................................................. 156
II. Gii thiu v cc tag HTML ......................................................................... 157
II.1. C bn v tag HTML.................................................................................... 157
II.2. Cc tag nhp liu........................................................................................ 163
III. Cascading Style Sheets - CSS...................................................................... 166
III.1. Gii thiu CSS............................................................................................. 166
III.2. C php CSS .............................................................................................. 167
III.3. S dng CSS trong trang HTML.................................................................... 169

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 5/174

GII THIU
Sau khi hon thnh kha hc ny, hc vin s c cc kh nng:
Ci t v cu hnh Web Server.
Thit k, xy dng, pht trin ng dng web vi Asp.Net

Vi thi lng l 36 tit LT v 60 tit TH c phn b nh sau:
STT Bi hc S tit LT S tit TH
1 Tng quan v Asp.Net 3 5
2 Asp Server Control 6 10
3 Cc iu khin lin kt d liu 6 10
4 Xy dng lp x l d liu 3 5
5 Xy dng cc i tng th hin 6 10
6 Xy dng v qun l ng dng web 9 15
7 Web Services 3 5
Tng s tit: 36 60

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 6/174
GIO TRNH L THUYT

TI LIU THAM KHO
Trong qu trnh bin son ti liu hng dn ging dy v gio trnh, chng ti c tham kho mt
s ti liu sau:
1. MSDN Library - April 2003 & MSDN Library - July 2005
2. MSDN Traning: Developing Microsoft ASP.NET Web Applications Using Visual Studio.NET
3. MSDN Traning: Programming with Microsoft ADO.NET
4. ASP.NET Web Developers Guide
5. ASP.NET By Example [Steven A. Smith]
6. Developing Web Applications with Visual Basic .NET and ASP.NET [John Alexander, Billy Hollis]
7. Programming ASP.NET, 2nd Edition [Dan Hurwitz, Jesse Liberty]
8. Inside ASP.NET [Scott Worley]
9. ASP NET Bible [Mridula Parihar]
10. ASP.NET for Web Designers [Peter Ladka]
11. Professional ADO.NET Programming [Wrox]
12. Cascading Style Sheets - The Designer's Edge [Molly E. Holzschlag ]
13. JavaScript Bible - Gold Edition [Danny Goodman]
14. Real World Web Services [Yasser Shohoud]
15. Trang ch ASP.Net: http://www.asp.net
16. Trng hc trc tuyn ca W3C: http://www.w3schools.com

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 7/174

HNG DN PHN L THUYT

Bi 1
TNG QUAN V ASP.NET
Tm tt
L thuyt 3 tit - Thc hnh 5 tit
Mc tiu Cc mc chnh Bi tp
Tm hiu cc k thut lp trnh ng
dng web v cc m hnh ng dng.
Ci t v cu hnh Web Server.
Tm hiu mi trng pht trin ng
dng web vi Visual Studio.Net.
1. Tng quan v lp trnh ng dng
web
2. Gii thiu v Asp.Net
3. Web Server
4. To ng dng web u tin
1.1, 1.2, 1.3, 1.4,
1.6, 1.7
Bi lm thm:
1.5
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 8/174
I. Tng quan v lp trnh ng dng Web
ng dng Web l mt h thng phc tp, da trn nhiu yu t: phn cng, phn mm, giao thc,
ngn ng v thnh phn giao din. Trong phn ny, chng ti s gii thiu s lc cho bn v cc
thnh phn c bn ca ng dng Web: HTTP (giao thc trao i ti nguyn) v HTML (ngn ng
xy dng trang web).
I.1. HTTP v HTML - Nn mng ca K thut lp trnh web
I.1.1. HTTP (Hypertext Transfer Protocol)
K thut c bn ca lp trnh ng dng web khi u l HyperText Transfer Protocol (HTTP), l
mt giao thc cho php cc my tnh trao i thng tin vi nhau qua mng my tnh.
HTTP c xc nh qua URLs (Uniform Resource Locators), vi cu trc chui c nh dng nh
sau:
http: // <host> [: <port>] [ <path> [? <query>]]
Sau tin t http://, chui URL s cha tn host hay a ch IP ca my server (c th c s cng i
km), tip theo l ng dn dn n tp tin server c yu cu. Ty chn sau cng l tham s,
cn c gi l query string (chui tham s/chui truy vn).
V d:
Phn tch a ch http://www.comersus.com/comersus6/store/index.asp
Trang web index.asp c lu tr trong th mc /comersus6/store ti Web Server vi host l
www.comersus.com
Mt s thut ng:
Internet: l mt h thng gm nhiu my tnh khp ni trn th gii ni li vi nhau.
WWW: World Wide Web (mng ton cu), thng c dng khi ni v Internet
Web Server: My tnh lu tr cc trang web
Web Client: My tnh dng truy cp cc trang web
Web Browser: Phn mm dng truy cp web
Mt s web browser ph bin: Internet Explorer, Netscape Navigator, Avant Browser, Opera,

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 9/174
I.1.2. HTML (Hypertext Markup Language)
Trang web HTML l mt tp tin vn bn c vit bng ngn ng HTML, ngn ng ny cn c
bit n vi tn gi: ngn ng nh du vn bn.
Ngn ng nh du HTML s dng cc k hiu quy nh sn (c gi l tag) trnh by ni
dung vn bn.


V d: Ni dung trang web AspDotNet.htm
<Html>
<Head>
<Title>ASP.Net</Title>
</Head>
<Body>
<P align="center">
<FONT size="6">
Cho cc bn n vi ASP.Net!!!
</FONT>
</P>
</Body>
</Html>
Ghi ch: Cc bn c th c thm cc tag HTML phn Ph lc B
Ni dung
nh dng Kt qu hin th
Trang ch
Windows
Server
System
Microsoft
<Html>
<Head>
</Head>
<Body>

</Body>
</Html>
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 10/174
I.2. Tm hiu cc m hnh ng dng
I.2.1. M hnh ng dng 2 lp

Client Database Server

y l mt dng m hnh n gin, kh ph bin ca mt ng dng phn tn. Trong m hnh ny,
vic x l d liu c thc hin trn Database Server, vic nhn v hin th d liu c thc hin
Client.
a. u im
D liu tp trung m bo d liu c nht qun.
D liu c chia s cho nhiu ngi dng.
b. Khuyt im
Cc x l tra cu v cp nht d liu c thc hin Database Server, vic nhn kt qu
v hin th phi c thc hin Client Kh khn trong vn bo tr v nng cp.
Khi lng d liu truyn trn mng ln chim dng ng truyn, thm gnh nng cho
Database Server.
Yu cu
Tr li
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 11/174
I.2.2. M hnh ng dng 3 lp
M hnh 2 lp phn no p ng c cc yu cu khc khe ca mt ng dng phn tn, tuy
nhin, khi khi lng d liu ln, ng dng i hi nhiu x l phc tp, s ngi dng tng, m
hnh 2 lp khng th p ng c.
M hnh 3 lp s dng thm Application Server gi nhim v tng tc gia Client v Database
server, gim bt cc x l trn Database server, tp trung cc x l nhn v hin th d liu ti
Application server.

Client Appication Server Database Server
a. u im
H tr nhiu ngi dng
Gim bt x l cho Client Khng yu cu my tnh Client c cu hnh mnh.
X l nhn v hin th d liu tp trung ti Application Server d qun l, bo tr v
nng cp.
X l truy cp d liu tp trung ti Database Server.
b. Khuyt im
Phi s dng thm mt Application Server Tng chi ph.
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 12/174
II. Gii thiu v ASP.Net
II.1. Tm hiu v .Net Phatform
.Net Phatform bao gm .Net Framework v nhng cng c c dng xy dng, pht trin
ng dng v dch v. ASP.Net.

.Net Phatform
Nhng sn phm cng ngh .Net ca Microsoft bao gm: MSN.Net, Office.Net, Visual Studio.Net v
Windows Server 2003 c bit n vi tn gi Windows .Net Server.
Visual Studio .Net l b phn mm c dng xy dng v pht trin cc ng dng bao gm
cc ngn ng lp trnh: C++.Net, Visual Basic.Net, ASP.Net, C# v J#. Tt c cc ngn ng ny
c xy dng da trn nn .Net Framework, v th, bn s nhn thy c php c bn ca nhng
ngn ng ny tng t nhau.
II.2. Tm hiu v .Net Framework

Kin trc .Net Framework

Operating System
Common Language Runtime
Base Class Library
ADO .NET and XML
ASP .NET
Web Forms - Web Services
Mobile Internet Toolkit
Windows
Forms
CCommon Language Specification
VB C++ C# J#
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 13/174
II.2.1. H iu hnh
Cung cp cc chc nng xy dng ng dng
Vi vai tr qun l vic xy dng v thi hnh ng dng, .NET Framework cung cp cc lp i
tng (Class) bn c th gi thi hnh cc chc nng m i tng cung cp. Tuy nhin, li
ku gi ca bn c c "hng ng" hay khng cn ty thuc vo kh nng ca h iu hnh
ang chy ng dng ca bn.
Cc chc nng n gin nh hin th mt hp thng bo (Messagebox) s c .NET Framework
s dng cc hm API ca Windows. Chc nng phc tp hn nh s dng cc COMponent s yu
cu Windows phi ci t Microsoft Transaction Server (MTS) hay cc chc nng trn Web cn
Windows phi ci t Internet Information Server (IIS).
Nh vy, bn cn bit rng la chn mt h iu hnh ci t v s dng .NET Framework cng
khng km phn quan trng. Ci t .NET Framework trn cc h iu hnh Windows 2000, 2000
Server, XP, XP.NET, 2003 Server s n gin v tin dng hn trong khi lp trnh.
II.2.2. Common Language Runtime
L thnh phn "kt ni" gia cc phn khc trong .NET Framework vi h iu hnh. Common
Language Runtime (CLR) gi vai tr qun l vic thi hnh cc ng dng vit bng .NET trn
Windows. CLR s thng dch cc li gi t chng trnh cho Windows thi hnh, m bo ng dng
khng chim dng v s dng trn lan ti nguyn ca h thng. N cng khng cho php cc lnh
"nguy him" c thi hnh. Cc chc nng ny c thc thi bi cc thnh phn bn trong CLR
nh Class loader, Just In Time compiler, Garbage collector, Exception handler, COM marshaller,
Security engine,
Trong cc phin bn h iu hnh Windows mi nh XP.NET v Windows 2003, CLR c gn km
vi h iu hnh. iu ny m bo ng dng vit ra trn my tnh ca chng ta s chy trn my
tnh khc m khng cn ci t, cc bc thc hin ch n gin l mt lnh xcopy ca DOS!
II.2.3. B th vin cc lp i tng
Nu phi gii ngha t "Framework" trong thut ng .NET Framework th y l lc thch hp nht.
Framework chnh l mt tp hp hay th vin cc lp i tng h tr ngi lp trnh khi xy dng
ng dng. C th mt s ngi trong chng ta nghe qua v MFC v JFC. Microsoft Foundation
Class l b th vin m lp trnh vin Visual C++ s dng trong khi Java Foundation Class l b th
vin dnh cho cc lp trnh vin Java. Gi y, c th coi .NET Framework l b th vin dnh cho
cc lp trnh vin .NET.
Vi hn 5000 lp i tng gi thc hin cc loi dch v t h iu hnh, chng ta c th
bt u xy dng ng dng bng Notepad.exe!!! Nhiu ngi lm tng rng cc mi trng
pht trin phn mm nh Visual Studio 98 hay Visual Studio.NET l tt c nhng g cn vit
chng trnh. Thc ra, chng l nhng phn mm dng lm "v bc" bn ngoi. Vi chng, chng
ta s vit c cc on lnh cc mu xanh, ; li c php bo ngay khi ang g lnh; thuc
tnh ca cc i tng c t ngay trn ca s properties, giao din c thit k theo phong
cch trc quan Nh vy, chng ta c th hnh dung c tm quan trng ca .NET Framework.
Nu khng c ci ct li .NET Framework, Visual Studio.NET cng ch l ci v bc! Nhng nu
khng c Visual Studio.NET, cng vic ca lp trnh vin .NET cng lm bc gian nan!
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 14/174
a. Base class library th vin cc lp c s
y l th vin cc lp c bn nht, c dng trong khi lp trnh hay bn thn nhng ngi xy
dng .NET Framework cng phi dng n xy dng cc lp cao hn. V d cc lp trong th
vin ny l String, Integer, Exception,
b. ADO.NET v XML
B th vin ny gm cc lp dng x l d liu. ADO.NET thay th ADO trong vic thao tc
vi cc d liu thng thng. Cc lp i tng XML c cung cp bn x l cc d liu theo
nh dng mi: XML. Cc v d cho b th vin ny l SqlDataAdapter, SqlCommand, DataSet,
XMLReader, XMLWriter,
c. ASP.NET
B th vin cc lp i tng dng trong vic xy dng cc ng dng Web. ASP.NET khng phi l
phin bn mi ca ASP 3.0. ng dng web xy dng bng ASP.NET tn dng c ton b kh
nng ca .NET Framework. Bn cnh l mt "phong cch" lp trnh mi m Microsoft t cho n
mt tn gi rt ku: code behind. y l cch m lp trnh vin xy dng cc ng dng Windows
based thng s dng giao din v lnh c tch ring. Tuy nhin, nu bn tng quen vi
vic lp trnh ng dng web, y ng l mt s "i i" v bn c gii phng khi m lnh
HTML ln xn ti hoa c mt.
S xut hin ca ASP.NET lm cn xng gia qu trnh xy dng ng dng trn Windows v Web.
ASP.NET cung cp mt b cc Server Control lp trnh vin bt s kin v x l d liu ca ng
dng nh ang lm vic vi ng dng Windows. N cng cho php chng ta chuyn mt ng dng
trc y vit ch chy trn Windows thnh mt ng dng Web kh d dng. V d cho cc lp
trong th vin ny l WebControl, HTMLControl,
d. Web services
Web services c th hiu kh st ngha l cc dch v c cung cp qua Web (hay Internet). Dch
v c coi l Web service khng nhm vo ngi dng m nhm vo ngi xy dng phn mm.
Web service c th dng cung cp cc d liu hay mt chc nng tnh ton.
V d, cng ty du lch ca bn ang s dng mt h thng phn mm ghi nhn thng tin v
khch du lch ng k i cc tour. thc hin vic t phng khch sn ti a im du lch, cng
ty cn bit thng tin v phng trng ti cc khch sn. Khch sn c th cung cp mt Web service
cho bit thng tin v cc phng trng ti mt thi im. Da vo , phn mm ca bn s bit
rng liu c ch t phng cho khch du lch khng? Nu , phn mm li c th dng mt
Web service khc cung cp chc nng t phng thu khch sn. im li ca Web service
y l bn khng cn mt ngi lm vic lin lc vi khch sn hi thng tin phng, sau , vi
cc thng tin v nhiu loi phng ngi s xc nh loi phng no cn t, s lng t bao
nhiu, hay khng ri li lin lc li vi khch sn t phng. ng qun l khch sn lc
ny cng cn c ngi lm vic vi nhn vin ca bn v cha chc h c th lin lc thnh
cng.
Web service c cung cp da vo ASP.NET v s h tr t pha h iu hnh ca Internet
Information Server.

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 15/174
e. Window form
B th vin v Window form gm cc lp i tng dnh cho vic xy dng cc ng dng Windows
based. Vic xy dng ng dng loi ny vn c h tr tt t trc ti nay bi cc cng c v
ngn ng lp trnh ca Microsoft. Gi y, ng dng ch chy trn Windows s c th lm vic vi
ng dng Web da vo Web service. V d v cc lp trong th vin ny l: Form, UserControl,
II.2.4. Phn nhm cc lp i tng theo loi
Mt khi nim khng c th hin trong hnh v trn nhng cn cp n l Namespace. y l
tn gi mt nhm cc lp i tng phc v cho mt mc ch no . Chng hn, cc lp i
tng x l d liu s t trong mt namespace tn l Data. Cc lp i tng dnh cho vic v
hay hin th ch t trong namespace tn l Drawing.
Mt namespace c th l con ca mt namespace ln hn. Namespace ln nht trong .NET
Framework l System.

H thng tn min (Namespace)
Li im ca namespace l phn nhm cc lp i tng, gip ngi dng d nhn bit v s
dng. Ngoi ra, namespace trnh vic cc lp i tng c tn trng vi nhau khng s dng
c. .NET Framework cho php chng ta to ra cc lp i tng v cc namespace ca ring
mnh. Vi hn 5000 tn c sn, vic t trng tn lp ca mnh vi mt lp i tng c l iu
kh trnh khi. Namespace cho php vic ny xy ra bng cch s dng mt tn y ni n
mt lp i tng. V d, nu mun dng lp WebControls, chng ta c th dng tn tt ca n l
WebControls hay tn y l System.Web.UI.WebControls.
c im ca b th vin cc i tng .NET Framework l s tri rng h tr tt c cc ngn
ng lp trnh .NET nh chng ta thy hnh v trn. iu ny s gip nhng ngi mi bt u t
bn tm hn trong vic la chn ngn ng lp trnh cho mnh v tt c cc ngn ng u mnh
ngang nhau. Cng bng cch s dng cc lp i tng xy dng ng dng, .NET Framework
buc ngi lp trnh phi s dng k thut lp trnh hng i tng (s c ni ti trong cc
chng sau).
S Sy ys st te em m
S Sy ys st te em m. .D Da at ta a S Sy ys st te em m. .X Xm ml l
S Sy ys st te em m. .W We eb b
G Gl lo ob ba al li iz za at ti io on n
D Di ia ag gn no os st ti ic cs s
C Co on nf fi ig gu ur ra at ti io on n
C Co ol ll le ec ct ti io on ns s
R Re es so ou ur rc ce es s
R Re ef fl le ec ct ti io on n
N Ne et t
I IO O
T Th hr re ea ad di in ng g
T Te ex xt t
S Se er rv vi ic ce eP Pr ro oc ce es ss s
S Se ec cu ur ri it ty y
C Co om mm mo on n
O Ol le eD Db b
S SQ QL LT Ty yp pe es s
S Sq ql lC Cl li ie en nt t
X XP Pa at th h
X XS SL LT T
R Ru un nt ti im me e
I In nt te er ro op pS Se er rv vi ic ce es s
R Re em mo ot ti in ng g
S Se er ri ia al li iz za at ti io on n
S Se er ri ia al li iz za at ti io on n
C Co on nf fi ig gu ur ra at ti io on n S Se es ss si io on nS St ta at te e
C Ca ac ch hi in ng g S Se ec cu ur ri it ty y
S Se er rv vi ic ce es s
D De es sc cr ri ip pt ti io on n
D Di is sc co ov ve er ry y
P Pr ro ot to oc co ol ls s
U UI I
H Ht tm ml lC Co on nt tr ro ol ls s
W We eb bC Co on nt tr ro ol ls s
S Sy ys st te em m. .D Dr ra aw wi in ng g
D DI Im ma ag gi in ng g
D Dr ra aw wi in ng g2 2D D
P PT Te ex xt t
P Pr ri in nt ti in ng g
S Sy ys st te em m. .W Wi in nd do ow ws s. .F Fo or rm ms s
D De es si ig gn n
C Co om mp po on ne en nt tM Mo od de el l
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 16/174
II.3. Tm hiu v ASP.Net
T khong cui thp nin 90, ASP (Active Server Page) c nhiu lp trnh vin la chn
xy dng v pht trin ng dng web ng trn my ch s dng h iu hnh Windows. ASP
th hin c nhng u im ca mnh vi m hnh lp trnh th tc n gin, s dng hiu qu
cc i tng COM: ADO (ActiveX Data Object) - x l d liu, FSO (File System Object) - lm vic
vi h thng tp tin, ng thi, ASP cng h tr nhiu ngn ng: VBScript, JavaScript. Chnh
nhng u im , ASP c yu thch trong mt thi gian di.
Tuy nhin, ASP vn cn tn ng mt s kh khn nh Code ASP v HTML ln ln, iu ny lm
cho qu trnh vit code kh khn, th hin v trnh by code khng trong sng, hn ch kh nng
s dng li code. Bn cnh , khi trin khai ci t, do khng c bin dch trc nn d b mt
source code. Thm vo , ASP khng c h tr cache, khng c bin dch trc nn phn no
hn ch v mt tc thc hin. Qu trnh x l Postback kh khn,
u nm 2002, Microsoft gii thiu mt k thut lp trnh Web kh mi m vi tn gi ban u l
ASP+, tn chnh thc sau ny l ASP.Net. Vi ASP.Net, khng nhng khng cn i hi bn phi
bit cc tag HTML, thit k web, m n cn h tr mnh lp trnh hng i tng trong qu trnh
xy dng v pht trin ng dng Web.
ASP.Net l k thut lp trnh v pht trin ng dng web pha Server (Server-side) da trn nn
tng ca Microsoft .Net Framework.
Hu ht, nhng ngi mi n vi lp trnh web u bt u tm hiu nhng k thut pha Client
(Client-side) nh: HTML, Java Script, CSS (Cascading Style Sheets). Khi Web browser yu cu mt
trang web (trang web s dng k thut client-side), Web server tm trang web m Client yu cu,
sau gi v cho Client. Client nhn kt qu tr v t Server v hin th ln mn hnh.
ASP.Net s dng k thut lp trnh pha server th hon ton khc, m lnh pha server (v d:
m lnh trong trang ASP) s c bin dch v thi hnh ti Web Server. Sau khi c Server c,
bin dch v thi hnh, kt qu t ng c chuyn sang HTML/JavaScript/CSS v tr v cho Client.
Tt c cc x l lnh ASP.Net u c thc hin ti Server v do , gi l k thut lp trnh
pha server.
II.4. Nhng u im ca ASP.Net
= ASP.Net cho php bn la chn mt trong cc ngn ng lp trnh m bn yu thch: Visual
Basic.Net, J#, C#,
= Trang ASP.Net c bin dch trc. Thay v phi c v thng dch mi khi trang web c
yu cu, ASP.Net bin dch nhng trang web ng thnh nhng tp tin DLL m Server c th
thi hnh nhanh chng v hiu qu. Yu t ny l mt bc nhy vt ng k so vi k thut
thng dch ca ASP.

Response
ASP.NET
ASPX
Engine
Page
DLL
Html
Page
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 17/174
= ASP.Net h tr mnh m b th vin phong ph v a dng ca .Net Framework, lm vic vi
XML, Web Service, truy cp c s d liu qua ADO.Net,
= ASPX v ASP c th cng hot ng trong 1 ng dng.
= ASP.Net s dng phong cch lp trnh mi: Code behide. Tch code ring, giao din ring D
c, d qun l v bo tr.
= Kin trc lp trnh ging ng dng trn Windows.
= H tr qun l trng thi ca cc control
= T ng pht sinh m HTML cho cc Server control tng ng vi tng loi Browser
= H tr nhiu c ch cache.
= Trin khai ci t
Khng cn lock, khng cn ng k DLL
Cho php nhiu hnh thc cu hnh ng dng
= H tr qun l ng dng mc ton cc
Global.aspx c nhiu s kin hn
Qun l session trn nhiu Server, khng cn Cookies
II.5. Qu trnh x l tp tin ASPX
Khi Web server nhn c yu cu t pha client, n s tm kim tp tin c yu cu thng qua
chui URL c gi v, sau , tin hnh x l theo s sau:

Qu trnh x l tp tin ASPX


Server tm
kim tp
tin

X l tp
tin ASPX
Thay i?

Thi hnh
trang ASPX
Khng
Hi p
Yu cu
Bin dch
Lu tr li
di dng
DLL
C
Bin dch li
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 18/174
III. Web Server
Trong phn ny chng ti gii thiu cho bn v IIS (phn mm Web Server ca Microsot dnh cho
Windows), ng thi hng dn bn ci t, cu hnh v kim tra Web Server trn cc h thng s
dng Windows XP, Windows 2000, Windows Server 2003.
III.1. Internet Information Services
IIS c th c s dng nh mt Web server, kt hp vi ASP xy dng cc ng dng Web tn
dng cc im mnh ca Server-side Script, COM component, theo m hnh Client/Server.



IIS c rt nhiu phin bn, u tin c pht hnh ri trong bn Service pack ca WinNT.
= Cc phin bn Windows 2000 c tch hp IIS 5.0.
= Windows XP tch hp IIS 5.5
= Windows XP .NET Server tch hp IIS 6 h tr cc tnh nng dnh cho .NET ca ASP.NET v
Web Service.
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 19/174
III.2. Ci t Web Server
III.2.1. Ci t Web Server trn Windows 2000/Windows XP Professional
Windows 2000 tch hp sn IIS nhng khng t ng ci t do , bn phi t ci IIS nu h
thng c ci ri.
Bc 1. Chn Control Panel | Add/Remove programs.
Bc 2. Add/Remove Windows Components.

Bc 3. nh du vo mc Internet Information Services (IIS).
Bc 4. Chn nt Details chn cc mc chi tit.

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 20/174
Bc 5. Chn cc mc cn ci t trong bn nh chn:
FrontPage 2000 Server Extensions
Internet Information Services Snap-In
Internet Services Manager (HTML)
Bc 6. Click OK h thng t ci t.
III.2.2. Ci t Web Server trn Windows Server 2003
Ci t Web Server trn Windows Server 2003 cng tng t nh ci t Web Server trn Windows
2000.
Bc 1. Chn Control Panel | Add/Remove programs.
Bc 2. Add/Remove Windows Components.
Bc 3. nh du vo Application Server.
Bc 4. Chn nt Details chn cc mc chi tit.
Cc bc cn li thc hin nh trn Windows 2000 (t bc 3 n bc 6)

Ci t IIS trn Windows Server 2003
III.2.3. Kim tra kt qu ci t Web Server
Sau khi ci t IIS, bn c th kim tra xem Web Server lm vic hay cha. M web browser
(Internet Explorer) v g: //localhost trong phn a ch. Mt khi Web server c ci t, mt
trang web mu s c hin th.
= Localhost l a ch ca my cc b m bn ang lm vic. Nu my ca bn ang kt ni vo
mng LAN v c mt a ch IP, bn c th dng a ch ny thay cho localhost.
xc nh a ch IP ca my mnh:
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 21/174
Vo menu Start|Run v g lnh: command hoc cmd
Trn mn hnh DOS, g lnh: ipconfig v xem phn IP Address
= Khi g //localhost, bn s thy trong thanh a ch t ng i thnh: http://localhost. HTTP l
giao thc mc nh c dng trn Internet. V HTTP l mt giao thc thuc b TCP/IP, bn
cn c a ch IP cc my tnh khc trong mng c th truy cp c n trang web ca
bn.
= Sau khi ci t Web Server, mc nh trn a C:\ s c sn th mc C:\inetpub\wwwroot.
y l th mc m Web Server mc nh nh x vo //localhost, do , cc trang web t
trong wwwroot c th c truy cp bi cc my tnh khc.
kim tra, hy to mt trang web v t vo c:\inetpub\wwwroot. Trn IE, g a ch:
/localhost/<tn file html>

Kim tra thnh cng Web Server trn Windows Server 2003
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 22/174
III.3. Cu hnh Internet Information Services
cu hnh IIS, vo Control Panel| Administrative Tools|Internet Services Manager.
Trn cc h iu hnh Windows 2000/XP, Microsoft s dng cng c Microsoft Management
Console (MMC) lm cng c qun l, do tt c cc thao tc u s dng menu ng cnh
bng cch nhp chut phi trn mc mun chn. Chn Properties ca mc Default Web Site, bn
c th xem v cu hnh li cc thng tin dnh cho trang web mc nh ca mnh.

= Trn tab Home Directory, bn c th thay i ng dn n mt th mc khc trn cng
nu mun

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 23/174
= Trn tab Documents, bn c th t trang web mc nh s hin th khi Web Browser khng ch
nh trang web c th. Bn s thy index.htm v default.htm c lit k trong phn ny. y
l l do ti sao khi bn g //localhost th Web browser li hin th c trang hompage. Thc
ra, //localhost tng ng vi //localhost/index.htm hay //localhost/default.htm.
= Trong tab Directory Security, bn c th nh li cc ch kim tra ngi dng truy cp vo
web site.
III.4. To cc ng dng web trn IIS
Mt Web Server c th qun l nhiu ng dng Web ng thi. Thng thng, bn s t chc mt
th mc con trong wwwroot cho mi ng dng nhng bn cng c th to nh x t mt th mc
khc.
= Nu bn t th mc trong wwwroot, IIS s t ng lit k n trong mc Default Web Site.
= Nu mun to mt th mc nm ngoi th mc wwwroot thnh mt web site, chng ta cn
to Virtual Directory lin kt n th mc .
to mt virtual directory:
= Chn mc New | Virtual Directory trn menu ng cnh.

To Virtual Directory
= Nhp vo tn alias cho th mc o.
= Chn nt Browse chn th mc mun nh x. Tip , bn s phi t mt s cu hnh khi
u cho web site, nhng thng tin ny c th cu hnh li tng t nh vi Default Web Site
trn

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 24/174

Kinh nghim ging dy:

Trong phn ny, gio vin cn hng dn cho hc vin ci t IIS v kim tra kt qu
ci t. Phn thc hnh ny tuy d nhng nu hc vin khng hon thnh tt phn
ny s khng th lm tip cc bi thc hnh sau.
IV. To ng dng Web u tin
IV.1. Khi ng MS Visual Studio .Net
Chng ta s bt u bng vic lm quen vi mi trng pht trin ng dng (IDE) ca Visual
Studio.NET. VS.NET c nhiu thay i so vi VS 98.
Hnh di l mn hnh khi u ca VS.NET 2003. Vng lm vic chnh gia ang hin th trang
"Start page" vi 3 mc chnh: Projects, Online Resource v My Profile.
My Profile ghi nh thng tin v ngi s dng VS.NET. Cc thng tin ch yu lin quan n cch
chng ta s s dng VS.NET nh th no. Chng hn nh cch hin th cc ca s, cc phm tt,
cch VS.NET hin th mn hnh gip ,
Online Resource cn mt kt ni vi Internet download cc thng tin t website ca Microsoft v
my tnh ca chng ta.
Projects lit k cc project m chng ta lm vic trong thi gian gn y. Trn mc ny, chng
ta cng c th to mi mt project bng cch nhn vo nt New Project.

Mn hnh Microsoft Visual Studio .Net

Ti liu hng dn ging dy



Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 25/174
IV.2. To mi ng dng Web
IV.2.1. To ng dng web u tin
Chng ta c th to ng dng Asp.Net s dng Visual Basic Project theo cc bc sau:
Bc 1. Chn t thc n File | New | Project. Xut hin hp thoi to mi Project.

Mn hnh to mi ng dng
Chn loi Project l Visual Basic Project t Project Types
Chn ASP.Net Web Application t vng Template
ng dng mi c to mc nh c tn l WebApplicationXX (XX l s th t t ng).
Chng ta c th thay i tn ca Project ti iu khin Location. Trong v d ny, chng ti
thay i tn Project WebApplication1 thnh MinhHoa.
Project c to mc nh lu ti th mc: C:\Inetpub\wwwroot
IV.2.2. B sung iu khin v thi hnh ng dng
Thit lp thuc tnh pageLayout ca trang mc nh (WebForm1.aspx) l FlowLayout (thc hin
thng qua ca s thuc tnh)
Thm 2 iu khin Label c trn trang WebForms ca thanh cng c Toolbox.
Tn iu khin Thuc tnh Text
lblChao Cho bn n vi lp trnh web vi ASP.Net
lblThoi_gian [Chui rng]
Vit lnh cho s kin Page_Load:
Private Sub Page_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
3
2
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 26/174
lblThoi_gian.Text = "By gi l " & _
Date.Now.ToString("dd/MM/yyyy HH:mm:ss")
End Sub

Mn hnh ng dng Web: MinhHoa

Lu : Phi lu tp tin vi ty chn Save with Encoding nu nh trong ca s lnh hoc mn
hnh thit k c s dng Font Unicode.


Lu ng dng vi Font ch Unicode
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 27/174
Nhn F5 hoc trn thanh cng c thi hnh ng dng.

Kt qu hin th ca trang Web
IV.3. Phn loi tp tin trong ASP.Net
ASP.Net ASP Din gii
.asax .asa Tp tin global.asax trong ASP .Net thay th cho tp tin global.asa ca
ASP, l tp tin qun l cc s kin ca ng dng (application), session, v
cc s kin khi c cc yu cu ti trang web.
.ascx Cc iu khin do ngi dng t to c lu tr vi phn m rng l
ascx.
.asmx Tp tin Web Service ca ng dng ASP.Net
.aspx .asp Phn m rng mc nh ca trang ASP.Net
.config Tp tin cu hnh ng dng theo nh dng XML. Web.config cha hu ht
cc cu hnh ca ng dng
.cs Tp tin m ngun vit theo ngn ng C#
.js .js Tp tin m ngun ca Jscript
.vb Tp tin m ngun vit theo ngn ng VB.Net

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 28/174
IV.4. Lm quen vi cc thnh phn giao din trn VS .Net
IV.4.1. Solution Explorer
Hin th ca s Solution Explorer: Thc n View | Solution Explorer

Thao tc vi ca s Solution Explorer

y l ca s qun l cc "ti nguyn" c trong ng dng. Thng qua ca s ny, chng ta c th:
= Thc hin cc chc nng: sao chp, ct, dn trn tp tin, th mc nh Windows Explorer.
= T chc th mc qun l ng dng: S dng chc nng Add | New Folder t thc n ng
cnh.
= Thm thnh phn mi cho ng dng: S dng chc nng Add | Add New Itemt thc n
ng cnh. Xut hin hp thoi Add New Item.
Web Form: Thm trang Web
Class: Thm lp i tng
Module: Thm th vin
Web User Control: Thm iu khin ngi dng

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 29/174

Mn hnh thm thnh phn mi cho ng dng
= Xc nh trang web khi ng cho ng dng
Chn trang cn khi ng Nhp chut phi (xut hin thc n ng cnh) Chn Set As
Start Page.

Xc nh trang khi ng cho ng dng
= Xc nh Project khi ng (trong trng hp Solution c nhiu Project): Chn Set as StartUp
Project t thc n ng cnh.
IV.4.2. Property Window
Hin th ca s Properties Window: Thc n View | Properties Window.
Thng qua ca s thuc tnh, chng ta c th thit lp thuc tnh cho trang web v cc i tng
c trong trang web.
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 30/174

Ca s thuc tnh
IV.4.3. Toolbox
Hin th Toolbox: Thc n View | Toolbox

Web Control Html Control
IV.4.4. Document Outline Window
Hin th ca s Document Outline: Thc n View | Other Windows | Document Outline.
Ca s ny hin th cc thnh phn ca trang web theo t chc cy rt d qun l v thao tc
vi cc i tng c trong trang Web.

Ca s Document Outline
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 31/174
Kinh nghim ging dy:

Trong phn ny, gio vin cn hng dn hc vin lm quen vi cc thnh phn giao
din, cc ca s lm vic, ch ng sp xp cc ca s sao cho thun tin nht trong
sut qu trnh lm vic.
Bc tip theo, gio vin hng dn cho hc vin cch to mt ng dng web (v tr lu
tr mc nh ti C:\inetpub\wwwroot), vit lnh v cho thi hnh ng dng web n
gin u tin.
Gio vin cn gii thiu cho hc vin cc loi tp tin c trong project, cch lu li bi
vi font ch Unicode.
Bn cnh , gio vin hng dn cho hc vin cch to Virtual directory nh x n
th mc ca ng dng, s dng IIS qun l cc ng dng web.

Ti liu hng dn ging dy



Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 32/174

Bi 2
WEB SERVER CONTROL
Tm tt
L thuyt 6 tit - Thc hnh 10 tit
Mc tiu Cc mc chnh Bi tp
S dng thnh tho cc iu khin
HTML & ASP.Net Web Control
Lm vic vi i tng ViewState.
1. HTML Control
HTML Control
HTML Server Control
2. ASP.Net Web Control
Asp.Net Page
iu khin c bn
iu khin kim tra d liu
Mt s iu khin khc
3. i tng ViewState
2.1, 2.2, 2.3, 2.4,
2.5, 2.6, 2.7, 2.8,
2.9, 2.10
Bi lm thm:
2.11, 2.12, 2.13


Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 33/174
I. HTML Control
iu khin HTML (tag HTML) trong trang ASP.Net c th xem nh nhng chui vn bn bnh
thng. c th c s dng lp trnh pha Server, ta gn thuc tnh runat="Server" cho
cc iu khin HTML . Nhng iu khin HTML (tag HTML) c thuc tnh runat="Server" c
gi l HTML Server Control.

Cc iu khin HTML trn thanh cng c
chuyn cc iu khin HTML thnh iu khin HTML Server, ta chn Run As Server Control t
thc n ng cnh.

Chuyn iu khin HTML thnh iu khin HTML Server
V d: Cc iu khin HTML: Label, Textbox, Button

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 34/174
X l s kin:
Private Sub butTong_ServerClick()
txtTong.Value = Val(txtA.Value) + Val(txtB.Value)
End Sub

Khi thi hnh ng dng
V d: Upload file vi iu khin HTML File Field
Trong v d sau, chng ta s thc hin Upload tp tin ln server, c th hn, tp tin va Upload s
c lu trong th mc Upload.
Ch : chp c tp tin ln th mc Upload, bn cn phi cp quyn cho php ghi trn th
mc Upload


Mn hnh ch thit k
X l s kin:
Private Sub butUpload_ServerClick(, e )
Dim sTap_tin As String
Dim sTen_file As String
sTap_tin = fileTap_tin.PostedFile.FileName

'Phn tch ng dn tp tin ly tn tp tin
sTen_file = sTap_tin.Substring(sTap_tin.LastIndexOf("\") + 1,
sTap_tin.Length - sTap_tin.LastIndexOf("\") + 1))

'Thc hin chp tp tin ln th mc Upload
fileTap_tin.PostedFile.SaveAs(Server.MapPath("Upload\") & sTen_file)
lblThong_bao.InnerHtml = "<B>Thng bo: Bn upload file thnh
cng</B>"
End Sub
iu khin HTML File Field: fileTap_tin
lblThong_bao
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 35/174
II. ASP.Net Web Control
II.1. Asp.Net Page
y l thnh phn chnh ca giao din, l ni cha cc iu khin, c s dng th hin ni
dung trang web n ngi dng.
II.1.1. S kin

Chui s kin ca i tng Page
a. Init
S kin Page_Init xy ra u tin khi trang web c yu cu.
Private Sub Page_Init() Handles MyBase.Init
'Do not modify it using the code editor.
InitializeComponent()
End Sub
b. Load
S kin ny l ni m bn s t phn ln cc x l, gi tr khi ng ban u cho trang web. S
kin ny lun xy ra mi khi trang web c yu cu.
Private Sub Page_Load() Handles MyBase.Load
'Put user code to initialize the page here
End Sub
c. PreRender
S kin ny xy ra khi trang Web chun b c tr v cho Client.
Private Sub Page_PreRender(ByVal sender As Object, )
Handles MyBase.PreRender
End Sub
Page_Init()
Page_Load()
Page_PreRender()
Page_Unload()
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 36/174
d. Unload
S kin ny i lp vi s kin Page_Init. Nu nh s kin Page_Init xy ra u tin khi trang Web
c yu cu, th y, Page_Unload l x kin sau cng, xy ra sau tt c nhng s kin khc.
Private Sub Page_Unload(ByVal sender As Object, ) Handles MyBase.Unload
End Sub
II.1.2. Thuc tnh
a. IsPostBack
y l mt thuc tnh kiu lun l. Gi tr ca thuc tnh ny cho bit trng thi ca trang Web khi
c Load, nu l ln Load u tin, gi tr ca thuc tnh ny = False. Thuc tnh ny thng
c s dng trong s kin Page_Load kim tra trng thi ca trang Web.
Private Sub Page_Load() Handles MyBase.Load
'Put user code to initialize the page here
If Not IsPostBack Then
lblPostBack.Text = "y l ln yu cu u tin"
Else
lblPostBack.Text = "y l ln yu cu sau."
End If
End Sub
b. SmartNavigation
Trong trng hp ni dung ca trang Web vt qu kch thc hin th ca mn hnh v bn ang
c phn gia ca trang Web, khi c ReLoad li, mn hnh s hin th phn u ca trang
Web. Nu gi tr ca thuc tnh ny l True, trnh duyt Web s vn gi nguyn v tr m bn ang
c sau khi Reload. y l mt thuc tnh kiu lun l. Gi tr mc nh l False.
II.2. iu khin c bn
Di y l cc l do bn nn s dng ASP.Net Web Control:
n gin, tng t nh cc iu khin trn Windows Form.
ng nht: Cc iu khin Web server c cc thuc tnh ging nhau d tm hiu v s
dng.
Hiu qu: Cc iu khin Web Server t ng pht sinh ra cc tag HTML theo tng loi
Browser.
Bng lit k cc thuc tnh chung ca cc Web control
Thuc tnh Kiu ngha
(ID) Chui Qui nh tn ca iu khin. Tn ca iu khin l duy nht.
AccessKey String Qui nh k t di chuyn nhanh n iu khin - k t x
l phm nng.
Attributes AttributeCollection Tp hp cc thuc tnh ca iu khin HTML.
BackColor Color Qui nh mu nn ca iu khin.
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 37/174
BorderColor Color Qui nh mu ng vin ca iu khin.
BorderStyle BorderStyle Qui nh kiu ng vin ca iu khin.
BorderWidth Unit Qui nh rng ca ng vin.
CssClass String Qui nh hnh thc hin th ca iu khin qua tn CSS.
Enabled Boolean Qui nh iu khin c c hin th hay khng. Gi tr mc
nh ca thuc tnh ny l True c php hin th.
Font FontInfo Qui nh Font hin th cho iu khin.
ForeColor Color Qui nh mu ch hin th trn iu khin
Height Unit Qui nh chiu cao ca iu khin.
ToolTip String Dng ch s hin th khi r chut vo iu khin.
Width Unit Qui nh rng ca iu khin.

II.2.1. Label
Label thng c s dng hin th v trnh by ni dung trn trang web. Ni dung c hin
th trong label c xc nh thng qua thuc tnh Text. Thuc tnh Text c th nhn v hin th ni
dung vi cc tag HTML.
V d:
lblA.Text = "y l chui vn bn thng"
lblB.Text = "<B>Cn y l chui vn bn c in m</B>"

II.2.2. HyperLink
iu khin ny c s dng to ra cc lin kt siu vn bn.
Cc thuc tnh
ImageURL: Qui nh hnh hin th trn iu khin.
Text: Chui vn bn s c hin th trn iu khin. Trong trng hp c 2 thuc tnh
ImageURL v Text c thit lp, thuc tnh ImageURL c u tin, thuc tnh Text s
c hin th nh Tooltip.
NavigateUrl: ng dn cn lin kt n.
Target: Xc nh ca s s hin th cho mi lin kt
_blank: Hin th trang lin kt mt ca s mi.
_self: Hin th trang lin kt ti chnh ca s cha lin kt .
_parent: Hin th trang lin kt frame cha.
V d:
hplASP_net.Text = "Trang ch ASP.Net"
hplASP_net.ImageUrl = "Hinh\Asp_net.jpg"
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 38/174
hplASP_net.NavigateUrl = "http://www.asp.net"
hplASP_net.Target = "_blank"

Kt qu hin tr trn trang Web
II.2.3. TextBox
TextBox l iu khin c dng nhp v hin th d liu. TextBox thng c s dng nhiu
vi cc ng dng trn windows form.
Cc thuc tnh
= Text: Ni dung cha trong Textbox
= TextMode: Qui nh chc nng ca Textbox, c cc gi tr sau:
SingleLine: Hin th v nhp liu 1 dng vn bn
MultiLine: Hin th v nhp liu nhiu dng vn bn
Password: Hin th du * thay cho cc k t c trong Textbox.
= Rows: Trong trng hp thuc tnh TextMode = MultiLine, thuc tnh Rows s qui nh s dng
vn bn c hin th.
= Maxlength: Qui nh s k t ti a c nhp vo cho TextBox
= Wrap: Thuc tnh ny qui nh vic hin th ca vn bn c c php t ng xung dng khi
kch thc ngang ca ca iu khin khng hin th dng ni dung vn bn. Gi tr mc
nh ca thuc tnh ny l True - t ng xung dng.
V d:



= AutoPostBack: Thuc tnh ny qui nh iu khin c c php t ng PostBack v Server khi
ni dung trong Textbox b thay i hay khng. Gi tr mc nh ca thuc tnh ny l False -
khng t ng Postback.
II.2.4. Image
iu khin ny c dng hin th hnh nh ln trang Web.
Thuc tnh
= ImageURL: ng dn n tp tin hnh nh cn hin th.
= AlternateText: Chui vn bn s hin th khi tp tin c thit lp trong thuc tnh ImageURL
khng tn ti.
= ImageAlign: V tr hin th gia hnh v ni dung vn bn.
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 39/174
NotSet

Left

Middle

TextTop

Right

II.2.5. Button, ImageButton, LinkButton
Cc iu khin Button, ImageButton, LinkButton mc nh u l cc nt Submit Button, mi khi
c nhn vo s PostBack v Server.
Khi chng ta thit lp gi tri thuc tnh CommandName cho cc iu khin ny, chng ta gi tn
chung cho cc iu khin ny l Command Button.
Cc thuc tnh chung ca Button, ImageButton, LinkButton
Thuc tnh ngha
Text Chui vn bn hin th trn iu khin.
CommandName Tn lnh. c s dng trong s kin Command.
CommandArgument Thng tin b sung cho s kin Command.
CausesValidation Trang web mc nh kim tra tnh hp l d liu mi khi c PostBack.
Cc iu khin Button, ImageButton, LinkButton lun PostBack v Server
mi khi c nhn lun kim tra tnh hp l d liu trn trang web.
Mun trang Web b qua vic kim tra d liu khi c nhn, gn tr cho
thuc tnh ny = False. Gi tr mc nh ca thuc tnh ny l True.

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 40/174
Chng ta s tm hiu 2 thuc tnh CommandName v CommandArgument phn sau.
Ngoi nhng thuc tnh trn, iu khin ImageButton cn c cc thuc tnh ImageURL, ImageAlign
v AlternateText nh iu khin Image.

Button, LinkButton v ImageButton
II.2.6. Listbox v DropdownList
ListBox v DropdownList l iu khin hin th danh sch la chn m ngi dng c th chn mt
hoc nhiu (ch dnh cho ListBox). Cc mc la chn c th c thm vo danh sch thng qua
lnh hoc ca s thuc tnh (Property Windows).
a. Cc thuc tnh
= AutoPostBack: Thuc tnh ny qui nh iu khin c c php t ng PostBack v Server khi
ch s ca mc chn b thay i. Gi tr mc nh ca thuc tnh ny l False - khng t ng
Postback.
= Items
y l tp hp cha cc mc chn ca iu khin. Ta c th thm vo mc chn vo thi im
thit k thng qua ca s ListItem Collection Editor, hoc thng qua lnh.
= Rows: Qui nh chiu cao ca ListBox theo s dng hin th.
= SelectionMode: Thuc tnh ny xc nh cch thc chn cc mc trong ListBox. SelectionMode
ch c php thay i trong qu trnh thit k, vo lc thc thi chng trnh, thuc tnh ny ch
c.
Single: Ch c chn mt mc c trong danh sch (mc nh).
Multiple: Cho php chn nhiu la chn.
b. X l mc chn
Cc thuc tnh sau s gip bn xc nh ch s, gi tr ca mc ang c chn. Trong trng hp
iu khin cho php chn nhiu, ta duyt qua cc Item trong tp hp Items, s dng thuc tnh
Selected ca i tng Item kim tra xem mc c c chn hay khng. (Xem v d trang
k tip)
= SelectedIndex: Cho bit ch s ca mc c chn. Trong trng hp chn nhiu mc,
SelectedIndex s tr v ch s mc chn u tin.
= SelectedItem: Cho bit mc c chn. Trong trng hp chn nhiu mc, SelectedItem s tr
v mc chn u tin.
= SelectedValue: Cho bit gi tr ca mc c chn. Trong trng hp chn nhiu mc,
SelectedValue s tr v gi tr mc chn u tin.
c. Tm hiu v tp hp Items
= Add: Thm mc mi vo cui danh sch, s dng phng thc Items.Add
Items.Add(<String>)
Items.Add(<ListItem>)
= Insert: Thm mc mi vo danh sch ti mt v tr no , s dng phng thc Items.Insert
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 41/174
Items.Insert(<index>,<ListItem>)
Items.Insert(<index>,<String>)
= Count: Tr v s mc (Item) c trong danh sch.
Items.Count
= Contains: Kim tra xem mt Item c trong tp hp Items hay cha, nu c, phng thc
ny s tr v gi tr True, ngc li, tr v False.
Items.Contains(<ListItem>)
= Remove: Xa i tng Item ti ra khi danh sch.
Items.Remove(<ListItem>)
Items.Remove(<Chuoi>)
Trong trng hp cc i tng Item l kiu chui, ta truyn vo mt chui xa. Nu c
nhiu gi tr ging nhau trong danh sch, ch c mc chn u tin b xa.
Trong trng hp cc i tng Item l i tng, ta truyn vo mt bin tham chiu n
item cn xa.
= RemoveAt: Xa mt item ti v tr index ra khi danh sch.
Items.RemoveAt(<index>)
= Clear: Phng thc Clear ca tp hp Items c dng xa tt c nhng Item c trong danh
sch. C php
Items.Clear
V d: iu khin danh sch lstKhu_dl: SelectionMode=Multiple, Rows=4

Khi thit k
X l s kin:
Private Sub Page_Load() Handles MyBase.Load
If Not IsPostBack Then
lstKhu_dl.Items.Add("Vnh H Long")
lstKhu_dl.Items.Add("Phan Thit - Mi N")
lstKhu_dl.Items.Add("Nha Trang")
lstKhu_dl.Items.Add(" Lt")
End If
End Sub
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 42/174
Private Sub butChon_dia_diem_Click()
Dim i As Integer
lblDia_diem.Text = ""
For i = 0 To lstKhu_Dl.Items.Count - 1
If lstKhu_dl.Items(i).Selected Then
lblDia_diem.Text &= lstKhu_dl.Items(i).Text() & "<br>"
End If
Next
End Sub

Khi thi hnh
II.2.7. Checkbox, RadioButton
a. Cc thuc tnh
= Checked: Cho bit trng thi ca mc chn - c c chn hay khng
= TextAlign: Qui nh v tr hin th ca iu khin so vi chui vn bn.

= AutoPostBack: Thuc tnh ny qui nh iu khin c c php t ng PostBack v Server khi
cc mc chn ca iu khin b thay i. Gi tr mc nh ca thuc tnh ny l False - khng t
ng Postback.
= GroupName (RadioButton): Tn nhm. Thuc tnh ny c s dng nhm cc iu khin
RadioButton li thnh 1 nhm.
b. V d

Nhm cc RadioButton Gii tnh, Thu nhp
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 43/174
Danh sch cc iu khin
iu khin Loi Thuc tnh Gi tr
chkAnh_van CheckBox Checked True
chkPhap_van CheckBox
rbtNam RadioButton Checked True
GroupName Gioi_tinh
rbtNu RadioButton GroupName Gioi_tinh
rbtThu_nhapA RadioButton GroupName Thu_nhap
rbtThu_nhapB RadioButton Checked True
GroupName Thu_nhap
rbtThu_nhapC RadioButton GroupName Thu_nhap


To nhm cho cc iu khin RadioButton
II.2.8. CheckBoxList, RadioButtonList
Hai iu khin ny c dng to ra mt nhm cc CheckBox/Radio Button. Do y l iu
khin danh sch nn n cng c thuc tnh Items cha tp hp cc mc chn nh
ListBox/DropDownList. Cc thao tc trn tp hp Items, x l mc chn cng tng t nh
ListBox/DropDownList.
a. Cc thuc tnh
RepeatColumns: Qui nh s ct hin th.
RepeatDirection: Qui nh hnh thc hin th
Vertical: Theo chiu dc
Horizontal: Theo chiu ngang
AutoPostBack: Thuc tnh ny qui nh iu khin c c php t ng PostBack v Server
khi cc mc chn ca iu khin b thay i. Gi tr mc nh ca thuc tnh ny l False -
khng t ng Postback.
b. V d

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 44/174
X l s kin:
Private Sub rblThu_nhap_SelectedIndexChanged()
lblThu_nhap.Text = "Bn chn thu nhp: " & _
rblThu_nhap.SelectedItem.Text
End Sub

II.2.9. Lin kt d liu vi cc iu khin ListBox, DropDownList, CheckBoxList,
RadioButtonList
V d: Lin kt d liu vi Sortedlist

X l s kin:
Private Sub Page_Load() Handles MyBase.Load
If Not IsPostBack Then
Dim Ds_Binh_chon As New SortedList
Ds_Binh_chon.Add("1", "Nhn tin SMS")
Ds_Binh_chon.Add("2", "Chp hnh")
Ds_Binh_chon.Add("3", "Nghe Radio")
Ds_Binh_chon.Add("4", "Nghe nhc MP3")
Ds_Binh_chon.Add("5", "Xem Video Clip")
Ds_Binh_chon.Add("6", "Lu tr")
Ds_Binh_chon.Add("7", "Ghi m")
Ds_Binh_chon.Add("8", "Chi game")
Ds_Binh_chon.Add("9", "Internet")

rblBinh_chon.DataSource = Ds_Binh_chon
rblBinh_chon.DataTextField = "Value"
rblBinh_chon.DataValueField = "Key"
rblBinh_chon.DataBind()
End If
End Sub
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 45/174
Private Sub rblBinh_chon_SelectedIndexChanged()
lblBinh_chon.Text = "Bn chn chc nng s " & _
rblBinh_chon.SelectedItem.Value
End Sub

Th hin thm d kin
Trong v d trn, chng ta to ra mt danh sch cc bnh chn thng qua i tng SortedList. i
tng SortedList c dng lu tr danh sch cc i tng v t ng sp xp cc i tng
theo gi tr ca thuc tnh kha.
lin kt iu khin vi mt i tng d liu ( v d ny l i tng SortedList), ta s dng
thuc tnh DataSource ly ngun d liu.
<iu khin>.DataSource = <i tng d liu>
Hai thuc tnh quan trng khng th thiu trong vic thc hin lin kt d liu l: DataTextField
v DataValueField. DataTextField l tn thuc tnh (hoc tn field) ca i tng d liu m ta
mun hin th. DataValueField l tn thuc tnh (hoc tn field) cha l gi tr m ta mun nhn v
khi ngi dng thc hin chn cc mc trn iu khin (thng qua thuc tnh SelectedValue hay
SelectedItem.Value).
hin th d liu ln iu khin khi trang c Load, chng ta s dng phng thc DataBind.
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 46/174
II.3. iu khin kim tra d liu
Trong phn ny chng ta s tm hiu v cc iu khin c dng kim tra d liu.

S x l kim tra d liu nhp ti Client v Server
Nh cc bn bit, mi khi PostBack v Server, trang Web lun kim tra tnh hp l d liu (nu
c yu cu khi thit k). Nu d liu khng hp l (b trng, vi phm min gi tr, mt khu nhp
li khng ng, ), trang web s khng th PostBack v Server.
Cc thuc tnh chung ca cc iu khin Validation Control
Thuc tnh ngha
ControlToValidate Tn iu khin cn kim tra. y l thuc tnh m cc bn phi xc nh khi
s dng Validation Control.
Text Chui thng bo xut hin khi c li.
ErrorMessage Chui thng bo xut hin trong iu khin Validation Summary. Gi tr ny
s c hin th ti v tr ca iu khin nu chng ta khng gn gi tr cho
thuc tnh Text.
Display Qui nh hnh thc hin th:
None: Khng hin th thng bo li (vn c kim tra d liu)
Static: Trong trng hp khng c vi phm d liu, iu khin khng
c hin th nhng vn chim v tr nh trong lc thit k.
Dynamic: Trong trng hp khng c vi phm d liu, iu khin
khng chim dng v tr trn mn hnh.
EnableClientScript C cho php thc hin kim tra pha Client hay khng. Gi tr mc nh l
True - c kim tra.

V d: Minh ha thuc tnh Display: Ti nhp li mt khu, ta c 2 iu khin kim tra d liu:
mt iu khin kim tra khng c php rng (rfvNhap_lai), mt iu khin kim tra xem nhp li
mt khu c ging vi mt khu nhp trn hay khng.
rfvNhap_lai.Display = Static
D liu nhp
Hp l?
Hp l?
Cc x l
Client
Server
Thng
bo li
Khng
Khng
C
C
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 47/174


La chn hnh thc hin th

rfvNhap_lai.Display = Dynamic


La chn hnh thc hin th
II.3.1. iu khin Required Field Validator
iu khin ny c dng kim tra gi tr trong iu khin phi c nhp.
S dng iu khin ny kim tra rng buc d liu khc rng (bt buc nhp).
Thuc tnh
= InitialValue: Gi tr khi ng. Gi tr bn nhp vo phi khc vi gi tr ca thuc tnh ny. Gi
tr mc nh ca thuc tnh ny l chui rng.
II.3.2. iu khin Compare Validator
iu khin ny c dng so snh gi tr ca mt iu khin vi gi tr ca mt iu khin khc
hoc mt gi tr c xc nh trc.
Thng qua thuc tnh Operator, chng ta c th thc hin cc php so snh nh: =, <>, >, >=, <,
<= hoc dng kim tra kiu d liu (DataTypeCheck).
S dng iu khin ny kim tra rng buc min gi tr, kiu d liu, lin thuc tnh.
Lu : Trong trng hp khng nhp d liu, iu khin s khng thc hin kim tra vi phm.
rfvNhap_lai
rfvNhap_lai
Khi khng c li, iu khin
Validation vn chim dng
v tr trn trang web
Khi khng c li, iu khin
Validation khng chim
dng v tr trn trang web.
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 48/174
Cc thuc tnh
= ControlToCompare: Tn iu khin cn so snh gi tr. Nu bn chn gi tr ca thuc tnh
Operator = DataTypeCheck th khng cn phi xc nh gi tr cho thuc tnh ny.
= Operator: Qui nh php so snh, kim tra kiu d liu
Equal: = (y l gi tr mc nh)
GreaterThan: >
GreaterThanEqual: >=
LessThan: <
LessThanEqual: <=
NotEqual: <>
DataTypeCheck: Kim tra kiu d liu
= Type: Qui nh kiu d liu kim tra hoc so snh.
String
Integer
Double
Date
Currency
= ValueToCompare: Gi tr cn so snh. Trong trng hp bn xc nh gi tr ca c 2 thuc tnh
ControlToCompare v ValueToCompare th gi tr ca iu khin c qui nh bi thuc tnh
ControlToCompare c u tin dng kim tra.
II.3.3. iu khin Range Validator
iu khin ny c dng kim tra gi tr trong iu khin phi nm trong on [min-max]
S dng iu khin ny kim tra rng buc min gi tr ca d liu.
Lu : Trong trng hp khng nhp d liu, iu khin s khng thc hin kim tra vi phm.
Cc thuc tnh
= MinimumValue: Gi tr nh nht.
= MaximumValue: Gi tr ln nht.
= Type: Xc nh kiu kim tra d liu. Ta c th thc hin kim tra trn cc kiu d liu sau:
String
Integer
Double
Date
Currency
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 49/174
II.3.4. iu khin Regular Expression Validator
iu khin ny c dng kim tra gi tr ca iu khin phi theo mu c qui nh trc: a
ch email, s in thoi, m vng, s chng minh th,
Lu : Trong trng hp khng nhp d liu, iu khin s khng thc hin kim tra vi phm.
Thuc tnh:
= ValidationExpression: Qui nh mu kim tra d liu.

Hp thoi Regular Expression
Bng m t cc k hiu thng s dng trong Validation Expression
K hiu M t
A K t ch ci ( c xc nh). y l ch a
1 K t s ( c xc nh). y l s 1
[0-n] Mt k t s t 0 n 9.
[abc] Mt k t: hoc a hoc b hoc c
| La chn mu ny hoc mu khc
\w K t thay th phi l mt k t ch ci
\d K t thay th phi l mt k t s
\ Th hin cc k t c bit theo sau.
\. K t thay th phi l du chm cu (.)
? Qui nh s ln xut hin: 0 hoc 1 ln
* Qui nh s ln xut hin: 0 hoc nhiu ln
+ Qui nh s ln xut hin: 1 hoc nhiu ln (t nht l 1)
{n} Qui nh s ln xut hin: ng n ln
II.3.5. iu khin Custom Validator
iu khin ny cho php bn t vit hm x l kim tra li.
S kin
= ServerValidate: t cc x l kim tra d liu trong s kin ny. Vic kim tra ny c thc
hin Server.
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 50/174
V d: X l kim tra d liu nhp ti iu khin txtSoA c phi l s chn hay khng.
Private Sub cvSo_chan_ServerValidate(, _
ByVal args As ServerValidateEventArgs)
If Val(txtSoA.Text) Mod 2 = 0 Then
args.IsValid = True
Else
args.IsValid = False
End If
End Sub
II.3.6. iu khin Validation Summary
iu khin ny c dng hin th ra bng li - tt c cc li hin c trn trang Web. Nu iu
khin no c d liu khng hp l, chui thng bo li - gi tr thuc tnh ErrorMessage ca
Validation Control s c hin th. Nu gi tr ca thuc tnh ErrorMessage khng c xc nh,
thng bo li s khng c xut hin trong bng li.
Cc thuc tnh
= HeaderText: Dng tiu ca thng bo li
= ShowMessageBox: Qui nh bng thng bo li c c php hin th nh ca s MessageBox
hay khng. Gi tr mc nh ca thuc tnh ny l False - khng hin th.

Thng bo li xut hin qua ca s MessageBox
= ShowSummary: Qui nh bng thng bo li c c php hin th hay khng. Gi tr mc nh
ca thuc tnh ny l True - c php hin th.

Thng bo li hin th trc tip trn trang Web
V d: S dng cc iu khin ValidateControl
Trong v d di y, chng ta thc hin kim tra d liu nhp trn cc iu khin c trong h s
ng k khch hng.
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 51/174

Mn hnh h s khch hng khi thit k

Bng m t thuc tnh ca cc iu khin kim tra d liu
iu khin Loi Thuc tnh Gi tr
rfvTen_dn RequiredField ControlToValidate txtTen_dn
ErrorMessage Tn ng nhp khng c rng
rfvMat_khau RequiredField ControlToValidate txtMat_khau
ErrorMessage Mt khu khng c rng.
rfvNhap_lai RequiredField ControlToValidate txtNhap_lai
Display Dynamic
ErrorMessage Nhp li mt khu khng c rng.
cvNhap_lai Compare ControlToValidate txtNhap_lai
ControlToCompare txtMat_khau
ErrorMessage Mt khu nhp li cha ng.
rfvHo_ten RequiredField ControlToValidate txtHo_ten
ErrorMessage H tn khng c rng.
cvNgay_sinh Compare ControlToValidate txtNgay_sinh
Operator DataTypeCheck
Type Date
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 52/174
ErrorMessage Ngy sinh khng hp l.
revEmail RegularExpression ControlToValidate txtEmail
ValidationExpression Internet Email
ErrorMessage Email khng hp l.
rvThu_nhap RangeValidator ControlToValidate txtThu_nhap
MaximumValue 50000000
MinimumValue 1000000
Type Integer

ErrorMessage Thu nhp t 1 triu n 50 triu
vsBang_loi V-Summary HeaderText Danh sch cc li
ShowMessageBox True
butDang_ky Button Text ng k
Thuc tnh Text ca cc iu khin: (*)

X l s kin:
Private Sub butDang_ky_Click()
lblThong_bao.Text = "ng k thnh cng"
End Sub
Cc thng bo li xut hin trn mn hnh nhp liu khi d liu nhp khng hp l.

Thng bo li khi d liu nhp liu khng hp l

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 53/174
Cc thng bo li xut hin qua hp thoi khi d liu nhp khng hp l:

Bng li qua ca s MessageBox
II.4. Mt s iu khin khc
II.4.1. iu khin Literal
Tng t nh iu khin Label, iu khin Literal cng c s dng hin th chui vn bn
trn trang Web.
Nu mun hin th mt chui vn bn trn trang Web, chng ta c th nh ni dung trc tip vo
trang Web m khng cn phi s dng iu khin. Ch s dng cc iu khin nh Label, Literal
hin th khi cn thay i ni dung hin th pha server.
im khc bit chnh gia Label v Literal l khi hin th ni dung ln trang web (lc thi hnh), iu
khin Literal khng to thm mt tag Html no c, cn Label s to ra mt tag span (c s dng
lp trnh pha client).
V d:

Khi thit k Khi thi hnh
Lnh x l:
Private Sub Page_Load() Handles MyBase.Load
lblLabel.Text = "<B>y l chui trong Label</B>"
ltrLiteral.Text = "<I>Cn y l chui trong Literal</I>"
End Sub
Chn chc nng t thc n View | Source trn Browser:
<span id="lblLabel"><B>y l chui trong Label</B></span><br>
<I>Cn y l chui vn bn trong Literal</I>
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 54/174
II.4.2. iu khin Panel v PlaceHolder
Hai iu khin Panel v PlaceHolder c s dng cha cc iu khin khc. Thuc tnh thng
dng ca 2 iu khin ny l Visible. Nu gi tr ca thuc tnh ny = True, cc iu khin cha
bn trong s c hin th, ngc li (Visible = False), khng c iu khin no cha bn trong
c hin th.
Tuy nhin, iu khin Panel cho php chng ta ko nhng iu khin vo bn trong n lc thit k,
cn iu khin PlaceHolder th khng.
thm nhng iu khin vo bn trong lc thi hnh, chng ta phi thc hin thng qua tp hp
Controls ca iu khin:
V d:
Dim txtSo_A As New TextBox
pnl.Controls.Add(txtSo_A)
II.4.3. iu khin Table
iu khin Table thng c s dng hin th d liu theo cc dng lnh c ci t. iu
khin ny c to thnh t tp hp cc dng (thng qua thuc tnh Rows) - TableRow, mi dng
c to thnh t tp hp cc (thng qua thuc tnh Cells) TableCell.
Mi - cell (TableCel) trong Table c th l mt iu khin cha cc iu khin khc. Ta c th
thao tc vi cc iu khin trong thng qua tp hp Controls ca .
V d: S dng cc iu khin Table

Mn hnh khi thit k
X l s kin:
Private Sub Page_Load(, e ) Handles MyBase.Load
Ve_bang(3, 3)
End Sub

Public Sub Ve_bang(ByVal pSo_dong As Integer, ByVal pSo_cot As Integer)
Dim r%, c%
Dim tr As TableRow, td As TableCell
'Tin hnh to bng d liu
For r = 0 To pSo_dong - 1
tr = New TableRow
tr.Height = New Unit(20)
For c = 0 To pSo_cot - 1
td = New TableCell
If r = c Then
tblBang
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 55/174
'X l thm cc Textbox
Dim txtTextbox As New TextBox
txtTextbox.Text = "Dng " & r & " ct " & c
txtTextbox.BackColor = Color.Yellow
txtTextbox.Width = New Unit(90)
td.Controls.Add(txtTextbox)
Else
td.Text = "Dng " & r & " ct " & c
End If
tr.Cells.Add(td)
Next c
tblBang.Rows.Add(tr)
Next r
End Sub

Mn hnh khi thi hnh
II.4.4. iu khin AdRotator
iu khin AdRotator c dng to ra cc banner qung co cho trang web, n t ng thay
i cc hnh nh ( c thit lp trc) mi khi c yu cu, PostBack v server.
a. Thuc tnh
= AdvertisementFile: Tn tp tin d liu (di dng xml) cho iu khin.
Di y l c php ca tp tin Advertisement (*.xml)
<Advertisements>
<Ad>
<ImageUrl>
ng dn n tp tin hnh nh
</ImageUrl>
<NavigateUrl>
ng dn n lin kt
</NavigateUrl>
<AlternateText>
Chui vn bn c hin th nh Tooltip
</AlternateText>
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 56/174
<Keyword>
T kha dng lc hnh nh
</Keyword>
<Impressions>
Tn sut hin th ca hnh nh
</Impressions>
</Ad>
</Advertisements>
Lu : Phi nhp ng cc gi tr trong tag nh mu trn. Cc gi tr trong tag c phn bit ch
Hoa ch thng.
Trong
= ImageUrl: ng dn n mt tp tin hnh nh
= NavigateUrl: ng dn n trang web s c lin kt n khi ngi dng nhn vo hnh nh
ang hin th.
= AlternateText: Gi tr ny s c hin th nu nh ng dn n tp tin hnh nh (qua thuc
tnh NavigateUrl) khng tn ti. i vi mt s trnh duyt, tham s ny c hin th nh
ToolTip ca hnh qung co.
= Keyword: c dng phn loi cc qung co. Thng qua gi tr ny, ta c th lc cc
qung co theo mt iu kin no .
= Impressions: Tham s ny quyt nh tng sut hin th ca hnh nh. Gi tr ny cng ln, kh
nng hin th cng nhiu.
= KeywordFilter: c dng chn lc v hin th nhng hnh qung co c gi tr ca tham s
Keyword = gi tr ca tham s ny.
Gi tr ca tham s ny mc nh khng c thit lp Hin th tt c nhng hnh c trong
tp tin XML. Trong trng hp nu khng c hnh no c gi tr Keyword bng gi tr ca thuc
tnh ny, s khng c hnh no c hin th.
= Target: Qui nh ca s hin th trang lin kt
_blank: Trang lin kt s c m mt ca s mi.
_self: Trang lin kt s c m chnh ca s cha iu khin.
_parent: Trang lin kt s c m ca s cha.
b. S kin
= AdCreated:Xy ra khi iu khin to ra cc qung co.
V d: To Qung co s dng iu khin AdRotator
Bc 1. Thit k giao din

AdRotator
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 57/174
Bc 2. To tp tin d liu: Hinh.xml
S dng chc nng Add New Item t thc n ng cnh
Chn XML File trong hp thoi Add New Item

Nhp vo c php qui nh cho tp tin Hinh.xml (theo c php ca tp tin Advertisement)
<?xml version="1.0" encoding="utf-8" ?>
<Advertisements>
<Ad>
<ImageUrl>Hinh\Asp_net.jpg</ImageUrl>
<NavigateUrl>http://www.asp.net</NavigateUrl>
<AlternateText>Trang ch Asp.net</AlternateText>
<Keyword>Hoc_tap</Keyword>
<Impressions>10</Impressions>
</Ad>
<Advertisements>
Chuyn mn hnh qua trang Data, nhp liu trc tip trn mn hnh ny

Nhp thng tin hnh nh qung co
Bc 3. Thit lp thuc tnh cho iu khin adQuang_cao
AdvertisementFile: Hinh.xml
Target: _blank Khi nhn vo s hin th lin kt ca s mi.
KeywordFilter: Khng thit lp Hin th tt c cc hnh nh
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 58/174
Bc 4. Thi hnh ng dng

Khi thi hnh
II.4.5. iu khin Calendar
Mt iu chc chn rng iu khin Calendar qu quen thuc vi cc bn lp trnh ng dng
trn windows, n c giao din trc quan, v vy, ngi dng c th chn ngy d dng.
a. Thuc tnh
= DayHeaderStyle: Qui nh hnh thc hin th tiu ca cc ngy trong tun
= DayStyle: Qui nh hnh thc hin th ca cc ngy trong iu khin.
= NextPrevStyle: Qui nh hnh thc hin th ca thng trc/sau ca thng ang c chn.
= SeleltedDayStyle: Qui nh hnh thc hin th ca ngy ang c chn.
= SeleltedDate: Gi tr ngy c chn trn iu khin
= TitleStyle: Qui nh hnh thc hin th dng tiu ca thng c chn
= TodayDayStyle: Qui nh hnh thc hin th ca ngy hin hnh (trn server).
= WeekendDayStyle: Qui nh hnh thc hin th ca cc ngy cui tun (th 7, ch nht)
= OtherMonthDayStyle: Qui nh hnh thc hin th ca cc ngy khng nm trong thng hin
hnh.
b. S kin
= SelectionChanged: X kin ny xy ra khi bn chn mt ngy khc vi gi tr ngy ang c
chn hin hnh
= VisibleMonthChanged: X kin ny xy ra khi bn chn thng khc vi thng hin hnh
V d:

Khi thit k
F5
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 59/174
X l s kin:
Private Sub Page_Load() Handles MyBase.Load
lblHom_nay.Text = "Hm nay ngy " & Date.Today.ToString("dd/MM/yyyy")
End Sub

Private Sub calLich_SelectionChanged() Handles
Dim lSo_ngay As Integer
lSo_ngay = Math.Abs(DateDiff(DateInterval.Day,
Date.Today, calLich.SelectedDate))

If calLich.SelectedDate > Date.Today Then
lblThong_bao.Text = "Cn " & lSo_ngay & _
ngy l n ngy sinh nht ca bn."
ElseIf calLich.SelectedDate = Date.Today Then
lblThong_bao.Text = "Hm nay l ngy sinh nht ca bn"
Else
lblThong_bao.Text = "Sinh nht bn qua " & lSo_ngay & " ngy."
End If
End Sub

Khi thi hnh
II.5. i tng ViewState
i tng ViewState c cung cp lu li nhng thng tin ca trang web sau khi web server
gi kt qu v cho Client. Mc nh, cc trang web khi c to s cho php s dng i tng
ViewState thng qua thuc tnh EnableViewState (ca trang web) = True.
Gn gi tr cho ViewState:
ViewState("Tn trng thi") = <gi tr>
Nhn gi tr t i tng ViewState:
<bin> = ViewState("Tn trng thi")
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 60/174
V d:

X l s kin:
Private Sub Page_Load() Handles MyBase.Load
If Not IsPostBack Then
ViewState("So_lan") = 0
Else
ViewState("So_lan") += 1
End If
lblTB.Text = "S ln Postback: " + CStr(ViewState("So_lan"))
End Sub

Private Sub butDem_Click() Handles butDem.Click
lblTB.Text = "S ln Postback: " + CStr(ViewState("So_lan"))
End Sub
V bn cht, cc gi tr trong i tng ViewState c lu trong mt iu khin hidden v cc gi
tr ny c m ha. i tng ViewState gip chng ta gim bt cng sc trong vic lu tr v
truy xut cc thng tin m khng phi s dng nhiu iu khin hidden.

Chn chc nng View | Source t browser

Kinh nghim ging dy:

Cng ging nh cc iu khin c bn trn winform, cc iu khin c bn trn
webform cng l mt thnh phn khng th thiu ca mt ng dng web.
Gio vin cn hng dn cho hc vin s dng cc iu khin ny thng qua cc bi
tp thc hnh (ti liu nh km). Ngoi nhng bi tp c trong ti liu, gio vin
c th son b sung thm nhng bi tp khc (m rng hn) ph hp vi kh nng
ca lp mnh ph trch.

Ti liu hng dn ging dy



Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 61/174

Bi 3
CC IU KHIN LIN KT D LIU
Tm tt
L thuyt 6 tit - Thc hnh 10 tit
Mc tiu Cc mc chnh Bi tp
S dng cc iu khin Data List,
DataGrid v Repeater hin th d
liu.
Lin kt d liu vi cc kiu tp hp:
ArrayList, SortedList, HashTable,
1. iu khin DataGrid
2. iu khin DataList
3. iu khin Repeater
3.1, 3.2, 3.3, 3.4,
3.6, 3.7, 3.8, 3.10
Bi lm thm:
3.5, 3.9, 3.11

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 62/174
I. iu khin DataGrid
DataGrid l mt iu khin kh linh hot v hiu qu trong vic hin th, nh dng v thao tc vi
d liu. Bn cnh , chng ta c th thc hin sp xp d liu, thc hin phn trang vi s h tr
kh tt ca VS .Net trong qu trnh thit k.
I.1. Cc thao tc nh dng li
thc hin cc thao tc nh dng, chng ta chn chc nng Property Builder t thc n
ng cnh.
I.1.1. Trang General
Trong trang ny, c cc mc chn sau:
= Show header: Qui nh dng tiu trn c c php hin th hay khng. (mc nh l c hin
th dng tiu )
= Show footer: Qui nh dng tiu di c c php hin th hay khng. (mc nh l khng
hin th dng tiu di)
= Allow sorting: C cho php sp xp d liu hay khng. (mc nh l khng cho php sp xp)

Cc mc chn trong Tab General
I.1.2. Trang Columns (Qun l thng tin cc ct)
Trang Columns qun l thng tin cc ct s hin th trn li.
Create columns automatically at runtime: Khi chn chc nng ny, DataGrid s t ng pht sinh
y cc ct c trong ngun d liu. Nu chng ta mun qui nh cc ct cn hin th, chng ta
khng chn chc nng ny.
Column list: Qui nh cc ct c hin th trong li.
= Bound Column: Ct c lin kt vi ngun d liu.
= Button Column: Ct dng nt lnh c thit k sn. iu khin DataGrid cung cp cho
chng ta 3 loi ct dng ny:
Select: Nt lnh chn dng d liu
Edit, Cancel, Update: Cc nt lnh h tr chc nng cp nht d liu trc tip trn li.
Delete: Nt lnh xa dng d liu
Chng ta s c dp tm hiu k hn v cc nt lnh ny trong phn Cp nht d liu trc tip
trn li.
= Hyperlink Column: Ct c lin kt d liu dng lin kt.
= Template Column: Ct do ngi dng t thit k. y l loi ct c kh nng lm vic kh linh
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 63/174
hot.

Trang Columns
V d bn cn hin th danh sch khch hng. Ti ct Phi, bn khng mun hin th Nam/N,
thay vo , bn mun hin th iu khin checkbox thay th, nu checkbox c chn - th
hin phi Nam v ngc li. Trong tnh hung ny, TemplateColumn l s chn la tt dnh
cho bn.

Chng ta s tm hiu su hn v Template Column phn sau.
= BoundColumn properties: Qui nh thng tin chi tit cho cc ct
HeaderText, Footer Text: Thng tin tiu trn/di ca ct
Header Image: Hnh hin th trn tiu ct (thay th thng tin tiu ct - Header Text).
Sort Expression: Biu thc sp xp ca ct.
Visible: Qui nh ct c c hin th hay khng.
DataField: Qui nh tn field hay tn thuc tnh ca i tng d liu cn hin th.
Data formatting expression: Biu thc nh dng d liu.
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 64/174
Mu nh dng: {0:<chui nh dng>}. V d:
+ nh dng s: {0:000.00}, {0:0.##}
+ nh dng ngy gi: {0:dd/MM/yyyy}, {0:hh/mm/ss tt}
Read Only: Chn gi tr ny ct ch c php c, khng cho php cp nht d liu.
= Convert this column into a Template Column: Chuyn ct hin hnh thnh ct dng Template
Column.
I.1.3. Trang Paging (Qun l phn trang)
Trang ny qun l vic phn trang ca DataGrid.

= Allow paging: C cho php phn trang hay khng.
= Page size: Qui nh s dng ca mi trang.
= Show navigation buttons: C hin th b nt di chuyn t trang ny qua trang khc hay
khng. Gi tr mc nh l True.
= Possition: Qui nh v tr hin th ca b nt di chuyn. pha trn thanh tiu , pha di
hay c hai.
= Mode: Qui nh hnh thc hin th ca b nt di chuyn. Hin th dng s trang hay l cc chui
k t i din (Next page/Previous page button text). Trong trng hp hin th dng s,
Numeric buttons qui nh s nt lnh c hin th ti a.

Google hin th kt qu c phn trang theo dng s
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 65/174
I.1.4. Trang Format (nh dng)
Trang Format qun l vic nh dng hin th trn iu khin DataGrid. Cc nh dng chung nh:
Mu ch, mu nn, Font ch, kch c, in m /in nghing/gch di v canh l.

Trang Format
= DataGrid: Qui nh cc nh dng chung cho li
= Header: nh dng cho dng tiu .
= Footer: nh dng cho dng tiu di.
= Pager: nh dng cho dng cha cc nt lnh phn trang.
= Items
Normal Items: nh dng cho cc dng d liu.
Alternating Items: nh dng hin th cho cc dng l.
Selected Items:nh dng hin th cho dng ang c chn.
Edit Mode Items: nh dng hin th cho dng ang trng thi hiu chnh d liu.
= Columns: Qui nh rng v cc nh dng ring cho tng ct.
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 66/174
I.1.5. Trang Borders (Khung vin)
Trang Borders qun l vic k khung vin cho li.

= Cell margin
Cell padding: Qui nh khong cch gia ni dung trong vi cc ng vin ca .

Cell padding = 0 Cell padding = 3
Cell spacing: Qui nh khong cch gia cc

Cell spacing = 3
V d: iu khin DataGrid sau khi c nh dng

Li khch hng sau khi c nh dng
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 67/174
M lnh x l:
Private Sub Page_Load() Handles MyBase.Load
If Not IsPostBack Then
Lien_ket_du_lieu()
End If
End Sub

I.2. X l sp xp
Sp xp d liu trn li l mt cng vic rt cn thit i vi ngi s dng. Hy th tng tng
xem trong trng hp chng ta c kh nhiu d liu hin th trn mn hnh (gi s l danh sch
nhn vin chng hn), tht kh chn ra cc nhn vin c thm nin lm vic lu nht hay cc
nhn vin c s gi tham gia n nhiu nht. Vi chc nng sp xp trn li s gip cho ngi
dng d dng chn ra cc nhn vin tha mn cc yu cu trn.
thc hin c thao tc sp xp d liu trn li, chng ta cn phi thc hin cc cng vic
sau:
Gi tr thuc tnh Allow sorting = True
Nhp gi tr cho thuc tnh Sort expression ca cc ct cn sp xp.
X l s kin SortCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.
DataGridSortCommandEventArgs)
Trong s kin trn, gi tr e.SortExpression cho bit thng tin ca ct c chn sp xp.
V d:
Private Sub Page_Load() Handles MyBase.Load
If Not IsPostBack Then
dtgKhach_hang.DataSource = Doc_ds_khach_hang()
dtgKhach_hang.DataBind()
End If
End Sub
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 68/174
Private Sub dtgKhach_hang_SortCommand(,e )
dtgKhach_hang.DataSource = Doc_ds_khach_hang(e.SortExpression)
dtgKhach_hang.DataBind()
End Sub

Public Function Doc_ds_khach_hang(Optional ByVal
pChuoi_sap_xep As String = "") As DataTable
Dim sKet_noi As String
sKet_noi = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" & _
Server.MapPath("..\Data\QlBanSach.mdb")
Dim cnKet_noi As New OleDbConnection(sKet_noi)

Dim dsCSDL As New DataSet
Dim sLenh_sql As String = "Select * From KHACH_HANG"
sLenh_sql &= IIf(pChuoi_sap_xep = "", _
"", " Order by " & pChuoi_sap_xep)

'M v ng kt ni ngay khi thc hin xong
cnKet_noi.Open()
Dim daBo_doc_ghi As New OleDbDataAdapter(sLenh_sql, cnKet_noi)
cnKet_noi.Close()

daBo_doc_ghi.Fill(dsCSDL, "KHACH_HANG")
Return dsCSDL.Tables("KHACH_HANG")
End Function

Sp xp khch hng tng dn theo tn
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 69/174
I.3. X l phn trang
Phn trang d liu khng nhng gip cho vic xem v tm kim thng tin c d dng m cn
gim c khi lng d liu cn c truyn ti t Server v Client. Vic phn trang trong
ASP.Net c thc hin kh d dng, ch vi mt s thao tc n gin.
thc hin phn trang, chng ta cn phi thc hin cc cng vic sau:
Qui nh cc thng s cn thit cho vic phn trang (xem Qun l phn trang phn Cc thao tc
nh dng li).
X l s kin PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.
WebControls.DataGridPageChangedEventArgs)
Trong s kin trn, gi tr e.NewPageIndex cho bit trang c chn hin th d liu.

nh dng phn trang
M lnh x l:
Private Sub Page_Load() Handles MyBase.Load
If Not IsPostBack Then
Lien_ket_du_lieu()
End If
End Sub

Private Sub dtgKhach_hang_PageIndexChanged(, e )
dtgKhach_hang.CurrentPageIndex = e.NewPageIndex
Lien_ket_du_lieu()
End Sub

D liu hin th c phn trang
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 70/174
I.4. Ty bin cc ct
Trong phn ny, chng ti s hng dn cc bn ty bin cc ct trn li, c th hn, chng ta s
hin th checkbox thay cho gi tr True/False ca ct gii tnh.
thc hin vic ty bin cc ct, chng ta cn phi thc hin 2 giai on sau:
= Giai on 1: Thit k
Trong giai on ny, chng ta ty bin ct theo mt yu cu c th. Thay v phi hin th d
liu bnh thng (nh h khch hng, tn khch hng, ), chng ta c th s dng iu khin
Checkbox thay th cho ct c gi tr lun l, s dng iu khin Image, Image button hay
Hyperlink hin th hnh nh thay cho chui ng dn dn n hnh nh ,
= Giai on 2: X l
Sau khi thc hin hon tt giai on thit k, y l lc chng ta phi vit cc lnh x l
hin th d liu theo yu cu ca mnh.
I.4.1. Giai on 1: Thit k
Bc 1. Thm mi ct Phi, kiu Template Column. Nhp gi tr Header text, Sort expression cho
ct ny (nu cn)

B sung ct Phi kiu Template Column
Bc 2. T thc n ng cnh, chn Edit Template \ Column[X] YYY
(X: S th t ca ct; Y: Chui tiu ca ct)
Chng ta chn ct cn hiu chnh.

Chn chc nng hiu chnh ct Phi
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 71/174
Bc 3. Thm iu khin checkbox chkPhai, vo mc ItemTemplate

Ty bin ct Phi
Bc 4. Chn End Template Editing t thc n ng cnh sau khi thit k xong.

iu khin li sau khi c ty bin ct Phi
I.4.2. Giai on 2: X l
Khc vi Bound column, ct kiu Template column khng t ng hin th d liu. M lm sao hin
th d liu c khi chnh bn thn cc iu khin (mi c to khi thit k) khng c qui nh
field cn c hin th t ngun d liu. Do , hin th d liu (theo ca chng ta), ta
phi vit lnh cc x l trong s kin ItemDataBound
M lnh x l:
(1)Private Sub dtgKhach_hang_ItemDataBound(,e )
(2) If e.Item.ItemIndex < 0 Then Exit Sub
(3) Dim chkPhai As CheckBox
(4) chkPhai = e.Item.FindControl("chkPhai")
(5) chkPhai.Checked = e.Item.DataItem("Gioi_tinh")
(6)End Sub
Trc khi i vo tm hiu cc lnh x l trong on lnh trn, chng ta cng nn tm hiu ngha
s kin ItemDataBound ca DataGrid. S kin ItemDataBound xy ra ngay khi phng thc
DataBind c gi (l ng nhin l ta phi gn ngun d liu cho li trc ). ng vi mi
dng d liu s xy ra mt s kin ItemDataBound tng ng.
Phn tch x l trong on lnh trn:
Dng lnh (2): Dng lnh ny kim tra xem ln xy ra s kin ny c phi dnh cho dng d liu
hay khng. Ti sao cn phi kim tra iu kin ny? Bi v khng ch ng vi mi dng d liu, m
cn c cc dng Header, Footer v Pager, cng xy ra trong s kin ny.
chkPhai
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 72/174
bit c ln xy ra s kin dnh cho dng no, chng ta kim tra gi tr ca thuc tnh
e.Item.ItemType. Thuc tnh ny c cc gi tr sau:

Cc gi tr ca thuc tnh ItemType
AlternatingItem: Xy ra ng vi dng d liu c ch s l (dng d liu u tin tnh t 0).
EditItem: ng vi dng trng thi hiu chnh d liu.
Footer: ng vi dng tiu di.
Header: ng vi dng tiu .
Item: Xy ra ng vi dng d liu c ch s chn.
Pager: ng vi dng phn trang.
SelectedItem: ng vi dng trng thi ang c chn.
Seperator: ng vi dng phn cch
Bn cnh , nu ta ch quan tm n ln xy ra s kin ny c phi l dng d liu hay khng, ta
c th s dng thuc tnh e.ItemIndex.
e.Item.ItemIndex < 0: y khng phi l dng d liu
e.Item.ItemIndex >= 0: y l dng d liu. Gi tr ca thuc tnh ny cho bit ch s ca
dng d liu hin hnh.
Dng lnh (3,4): Nhim v chnh 2 dng lnh ny l chng ta khai bo cc iu khin ng vi
cc iu khin c t vo lc thit k. S dng phng thc e.Item.FindControl(<Tn iu
khin>) ly iu khin hin c trong dng ang xy ra s kin.
chkPhai = e.Item.FindControl("chkPhai") 'hay
chkPhai =Ctype(e.Item.FindControl("chkPhai"),CheckBox)

Bng
KHACH_HANG
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 73/174
Dng lnh (5): Sau khi ly c iu khin ng vi dng ang xy ra s kin, ty theo d liu m
ta s hin th ln iu khin gi tr tng ng. ly c d liu ca dng hin hnh, ta s dng
thuc tnh e.Item.DataItem(<Tn field/Tn thuc tnh>)
chkPhai.Checked = e.Item.DataItem("Gioi_tinh")

Kt qu hin th
i vi nhng x l phc tp, s kin ItemDataBound s l s la chn hng u trong vic
ty bin hin th d liu. Tuy nhin, i vi nhng x l n gin, chng ta c th thc hin
lin kt d liu trong qu trnh thit k.
Chn Edit Template ct Phi, chn iu khin chkPhai.


Chn iu khin chkPhai trong lc thit k
Trn ca s thuc tnh, chn (DataBindings)

Chn chc nng DataBidings
Trn ca s thuc tnh, chn (DataBindings). Hp thoi DataBindings ca iu khin chkPhai xut
hin.
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 74/174

Cc thuc tnh c th lin kt d liu ca iu khin xut hin trong Danh sch bn tri hp thoi.
Chn thuc tnh cn lin kt, chn loi lin kt l Custom binding expression, nhp chui lin kt d
liu trong iu khin bn di theo c php:
Container.DataItem("Tn field")
v d ny, chng ta thc hin lin kt thuc tnh Checked ca iu khin chkPhai vi field
Gioi_tinh c trong ngun d liu ca li.
I.5. Cp nht d liu trc tip trn li
Cp nht d liu trc tip trn li trong ASP.Net c h tr kh tt v giao din. Cng vic cn
li ca chng ta l thit k cc nt lnh nh: Chn, Sa/Ghi - Khng, Hy, v vit cc lnh cp
nht d liu.
I.5.1. Giai on thit k
Trong ca s thuc tnh ca li, chng ta to b nt lnh cn thit h tr cho vic cp nht d
liu. v d ny, chng ti to b nt (Select - chn), (Edit, Update, Cancel - Sa, Ghi, Khng) v
(Delete - Hy)
i vi cc nt lnh trn, cc bn cn ch n gi tr ca thuc tnh Command name. ng vi
mi nt lnh c gi tr CommandName khc nhau, nh , ta vit lnh x l vi chc nng tng
ng c chn.
= Select: Command name = "Select"
= Edit, Update/Cancel: Command name = "Edit", "Update"/"Cancel"
= Delete: Command name = "Delete"
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 75/174

To b nt lnh Thm - Sa/Ghi/Khng - Hy
Tm hiu v thuc tnh Command Name
Cng cn bn thm mt cht y v thuc tnh Command Name. Nh cc bn cng bit, cc nt
lnh trn (Chn, Thm - Sa / Ghi / Khng - Hy) l do VS.Net h tr, gi tr thuc tnh
CommandName ca cc nt lnh trn l nhng gi tr mc nh c qui nh sn.
ng vi mi CommandName mc nh, s c cc s kin ta thc hin cc x l tng ng:
Command name="Edit" S kin EditCommand
Command name="Update" S kin UpdateCommand
Command name="Cancel" S kin CancelCommand
Command name="Delete" S kin DeleteCommand
Chc hn cc bn s thc mc ti sao khng c s kin SelectCommand? Bn s kin c lit k
trn l 4 s kin dnh ring, tng ng vi gi tr ca cc Command name mc nh l Edit,
Update, Cancel, Delete. i vi nhng CommandName c gi tr khc, chng ta s s dng s kin
dnh chung cho tt c cc nt lnh c thuc tnh CommandName (Button, Linkbutton,
ImageButton) c t trn li - s kin ItemCommand.
Ti sao vy? V khi ta t cc nt lnh vo li (s dng ct Template column), chng (cc nt
lnh) khng cn s kin Click na, thay vo , tt c cc nt lnh khi c nhn s gy ra s
kin ItemCommand. Da vo gi tr e.CommandName (tham s trong s kin) chng ta xc
nh nt lnh no c nhn.
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 76/174
Cng cn lu thm y l bt k nt lnh no khi c nhn u gy ra s kin ItemCommand.
Do , i vi cc nt lnh c gi tr thuc tnh CommandName l Edit, Update, Cancel, Delete khi
c nhn vn gy ra s kin ItemCommand trc khi gy ra cc s kin dnh ring cho chng.

Giao din li sau khi thm b nt lnh
I.5.2. Giai on x l
= X l chn mu tin

Chn mu tin trn li
Private Sub dtgKhach_hang_ItemCommand(, e )
If e.CommandName = "Select" Then
dtgKhach_hang.SelectedIndex = e.Item.ItemIndex
Lien_ket_du_lieu()
End If
End Sub
= X l sa, ghi, khng
Mun cp nht d liu, ta cn xc nh khch hng c cp nht thng qua M khch hng.
ly M khch hng:
Gn thuc tnh DataKeyField ca iu khin li = "MKH"
<li>.DataKeys(<ch s i>) Tr v Mkh ti dng <ch s i>

Chn mu tin cp nht d liu
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 77/174
Private Sub Page_Load()
If Not IsPostBack Then
dtgKhach_hang.DataKeyField = "MKH"
Lien_ket_du_lieu()
End If
End Sub

Private Sub dtgKhach_hang_EditCommand(, e )
dtgKhach_hang.EditItemIndex = e.Item.ItemIndex
Lien_ket_du_lieu()
End Sub

Private Sub dtgKhach_hang_UpdateCommand(, e )
'Khai bo v khi to bin kt ni: cnKet_noi

'Ly d liu m ngi dng va cp nht
Dim lHo_kh As TextBox = e.Item.Cells(0).Controls(0)
Dim lTen_kh As TextBox = e.Item.Cells(1).Controls(0)
Dim lPhai As CheckBox = e.Item.FindControl("chkPhai")
Dim lMkh As Integer = dtgKhach_hang.DataKeys(e.Item.ItemIndex)

'To i tng Command cp nht d liu
Dim cmdLenh As New OleDbCommand
cmdLenh.Connection = cnKet_noi
cmdLenh.CommandText = "Update KHACH_HANG " & _
"Set Ho_khach_hang=?, Ten_khach_hang=?, " & _
"Gioi_tinh=? Where MKH=?"

'Truyn tham s cho i tng Command
cmdLenh.CommandType = CommandType.Text
cmdLenh.Parameters.Add("Ho_kh", lHo_kh.Text)
cmdLenh.Parameters.Add("Ten_kh", lTen_kh.Text)
cmdLenh.Parameters.Add("Phai", lPhai.Checked)
cmdLenh.Parameters.Add("Mkh", lMkh)

'Thi hnh Command
cnKet_noi.Open()
cmdLenh.ExecuteNonQuery()
cnKet_noi.Close()

'Tt ch cp nht d liu
dtgKhach_hang.EditItemIndex = -1

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 78/174
'Hin th d liu mi cp nht ln li
Lien_ket_du_lieu()
End Sub

Private Sub dtgKhach_hang_CancelCommand(, e )
dtgKhach_hang.EditItemIndex = -1
Lien_ket_du_lieu()
End Sub
Hiu chnh rng ca cc Textbox khi dng trng thi sa
Bn c th b sung on lnh sau (trong s kin ItemDataBound) hiu chnh rng cc
Textbox ca dng trng thi sa.
If e.Item.ItemType = ListItemType.EditItem Then
CType(e.Item.Cells(0).Controls(0),TextBox).Width = New Unit(133)
CType(e.Item.Cells(1).Controls(0), TextBox).Width = New Unit(63)
End If
X l hy mu tin
Private Sub dtgKhach_hang_DeleteCommand(, e )
'Thc hin xa dng d liu y
'X l tng t nh Update Command

'Hin th d liu mi cp nht ln li
Lien_ket_du_lieu()
End Sub
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 79/174
II. iu khin DataList
II.1. S dng DataList hin th d liu
Nh iu khin DataGrid, iu khin DataList c s dng hin th d liu. Tuy nhin, i vi
DataList, chng ta phi t thit k hnh thc hin th d liu (ging nh Template Column ca
DataGrid).
Huy Cn V Tc Gi V Tc Phm
NXB: Gio dc
Cun Huy Cn V Tc Gia V Tc Phm tp hp nhng bi nghin
cu, ph bnh ca cc nh vn, nh th, cc cn b ging dy, cc
nh nghin cu ph bnh vn hc, cc nh nghin cu vn ha nc
ngoi c cng b trn sch, bo, tp ch. Cc bi vit ny c
sp xp theo th t thi gian v ch , bn c c th hnh ...
Gi: 45,500.00 VND


[t hng] [Xem Tip]
a Cht Cng Trnh (Gio Trnh Dng Cho Sinh Vin Ngnh Xy
Dng Cu ng)
NXB: Giao thng vn ti
a cht cng trnh l mt mn c a vo chng trnh o to k
s ngnh Xy dng cu ng ca trng i hc GTVT t lu.
Nhng hiu bit v a cht cng trnh s gip ch nhiu cho k s cu
ng trong kho st, thit k v thi cng cc cng trnh giao thng ...
Gi: 14,000.00 VND


[t hng] [Xem Tip]
S dng DataList hin th thng tin sch
Mt s thuc tnh cn ch ca DataList
= RepeatDirection: Qui nh hng hin th d liu
Horizontal: Hin th d liu theo chiu ngang

RepeatDirection = Horizontal
Vertical (mc nh): Hin th d liu theo chiu ng

RepeatDirection = Vertical
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 80/174
= RepeatColumns: Qui nh s ct hin th ca DataList


L'Enqute Corse
t mua
Unspeakable
t mua

Bottle Rocket
t mua


Ripper
t mua
Enduring Love
t mua

The Good Thief
t mua
RepeatColumns = 3

Thit k hnh thc hin th cho DataList cng tng t nh thit k cho ct Template Column ca
DataGrid.
Chn Edit Template | ItemTemplate t thc n ng cnh thc hin thit k hnh thc hin th
cho DataList.

Chn chc nng thit k cho DataList

Trong qu trnh thc hnh, cng vic thit k c d dng, cc bn thc hin thit k
bn ngoi iu khin DataList. S dng Table (thc n Insert Table) nh v tr hin
th ca cc iu khin.
Sau khi hon tt cng vic thit k, chng ta ko kt qu thit k vo v tr cn hin th trong
DataList.


Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 81/174
V d: Hin th thng tin sch vi DataList

Thit k thng tin sch vi DataList
Nh ct Template Column ca DataGrid, x l hin th d liu cho DataList c vit trong s kin
ItemDataBound. X l nhn ca cc Button t trong DataList c vit trong s kin
ItemCommand.
Private Sub Page_Load(, e ) Handles MyBase.Load
If Not IsPostBack Then
Lien_ket_du_lieu()
End If
End Sub

Public Sub Lien_ket_du_lieu()
dtSach = Doc_danh_sach_Sach()
dtlSach.DataSource = dtSach
dtlSach.DataKeyField = "Ms"
dtlSach.DataBind()
End Sub

Private Sub dtlSach_ItemDataBound(, e )
Dim lDong as Integer = e.Item.ItemIndex
If lDong < 0 Then Exit Sub

'Hin th Tn sch
Dim lnkTs As LinkButton
lnkTs = e.Item.FindControl("lnkTen_sach")
lnkTs.Text = e.Item.DataItem("Ten_sach")

'Hin th thng tin m t tm tt ni dung
Label
HyperLink
LinkButton
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 82/174
Dim lblMt As Label
lblMt = e.Item.FindControl("lblMo_ta")
lblMt.Text = Left(e.Item.DataItem("Mo_ta"), 200) & "..."

'Hin th hnh nh minh ha
Dim hplHinh As HyperLink
hplHinh = e.Item.FindControl("hplHinh_mh")
hplHinh.ImageUrl = "../Data_Pic/" & e.Item.DataItem("Hinh_minh_hoa")

'Hin th gi bn sch
Dim lblGia As Label
lblGia = e.Item.FindControl("lblGia_ban")
lblGia.Text = e.Item.DataItem("Don_gia")
End Sub
Kt qu hin th thng tin sch trn trang Web

Kt qu trn trang Web
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 83/174
II.2. Cp nht d liu vi DataList
Ngoi vic hin th d liu, DataList cng h tr cc thao tc cp nht d liu. thc hin chc
nng cp nht d liu vi DataList, chng ta cn phi thit k thm vng EditIemTemplate cho
DataList. (xem hnh)


II.2.1. Cc bc x l
a. Thit k
Thit k c 2 vng ItemTemplate v EditItemTemplate. Thc hin cc thao tc lin kt d liu cho
cc iu khin trong vng EditItemTemplate thng qua ca s thuc tnh tng t nh trong
ItemTemplate.
Ch : Chng ta hon ton c th thc hin vic lin kt d liu trong s kin ItemDataBound.
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 84/174

Chn chc nng DataBindings cho n gi


Lin kt d liu vi ct Don_gia
Yu cu thit k
Tn iu khin Thit lp thuc tnh
Hieu_chinh: ImageButton CommandName: Edit
Ghi_nhan: ImageButton CommandName: Update
CommandArgument:
DataBinder.Eval(Container, "DataItem.Ms")
Lu li m s ca sch ang hiu chnh.
Bo_qua: ImageButton CommandName: Cancel
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 85/174
b. X l lnh cp nht d liu
X l cc s kin EditCommand, CancelCommand, UpdateCommand thc hin/b qua vic thay
i d liu.
Private Sub Page_Load(, e ) Handles MyBase.Load
'Put user code to initialize the page here
If Not IsPostBack Then
Lien_ket_du_lieu()
End If
End Sub

Private Sub dtlHang_hoa_EditCommand(, e )
dtlHang_hoa.EditItemIndex = e.Item.ItemIndex
Lien_ket_du_lieu()
End Sub

Private Sub dtlHang_hoa_CancelCommand(, e )
dtlHang_hoa.EditItemIndex = -1
Lien_ket_du_lieu()
End Sub

Private Sub dtlHang_hoa_UpdateCommand(, e )
'X l cp nht d liu ti y
Dim Don_gia_sua As TextBox
Don_gia_sua = e.Item.FindControl("Don_gia_sua")
'Don_gia_sua.Text Tr v n gi mi c sa
'

dtlHang_hoa.EditItemIndex = -1
Lien_ket_du_lieu()
End Sub
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 86/174

DataList ch ang hiu chnh
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 87/174
III. iu khin Repeater
Nh 2 iu khin DataList & DataGrid, iu khin Repeater cng c dng hin th d liu. Tuy
nhin, hin th d liu, chng ta phi t thit k hnh thc hin th thng qua cc tag HTML.
iu khin Repeater c cc tag sau:
= <HeaderTemplate></HeaderTemplate> (ty chn)
Qui nh hnh thc hin th cho tiu . (Ch xut hin 1 ln, pha trn ca iu khin)
= <ItemTemplate></ItemTemplate> (Bt buc phi c)
Qui nh hnh thc hin th cho cc mc d liu trong iu khin.
= <AlternatingItemTemplate></AlternatingItemTemplate> (ty chn)
Qui nh hnh thc hin th cho cc mc d liu trong iu khin. Ni dung c qui nh trong
cp tag ny s hin th xen k vi cc ni dung trong cp tag <ItemTemplate>
</ItemTemplate>
= <SeparatorTemplate></SeparatorTemplate> (ty chn)
Qui nh hnh thc hin th gia cc dng d liu
= <FooterTemplate></FooterTemplate> (ty chn)
Qui nh hnh thc hin th cho tiu di. (Ch xut hin 1 ln, pha di ca iu khin)
V d:
Bc 1. To mi iu khin Repeater: rptKhach_hang vo trang Web.

iu khin rptKhach_hang trn trang Web
Bc 2. Chuyn qua xem trang Web di dng HTML
<asp:Repeater id="rptKhach_hang" runat="server">
<asp:Repeater>
Bc 3. B sung cc tag sau
<asp:Repeater id="rptKhach_hang" runat="server">

<HeaderTemplate>
<table border="1" bordercolor="SteelBlue">
<tr>
<td width="130" align="center">
<strong>H khch hng</strong>
</td>
<td width="100" align="center">
<strong>Tn khch hng</strong>
</td>
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 88/174
<td width="120" align="center">
<strong>a ch</strong>
</td>
<td width="80" align="center">
<strong>in thoi</strong>
</td>
</tr>
</HeaderTemplate>

<ItemTemplate>
<tr>
<td>
<%# Container.DataItem("Ho_khach_hang") %>
</td>
<td>
<%# Container.DataItem("Ten_khach_hang") %>
</td>
<td>
<%# Container.DataItem("Dia_chi")%>
</td>
<td>
<%# Container.DataItem("Dien_thoai") %>
</td>
</tr>
</ItemTemplate>

<AlternatingItemTemplate>
<tr bgcolor="GhostWhite">
<td>
<%# Container.DataItem("Ho_khach_hang") %>
</td>
<td>
<%# Container.DataItem("Ten_khach_hang") %>
</td>
<td>
<%# Container.DataItem("Dia_chi")%>
</td>
<td>
<%# Container.DataItem("Dien_thoai") %>
</td>
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 89/174
</tr>
</AlternatingItemTemplate>

<FooterTemplate>
</table>
</FooterTemplate>

</asp:Repeater>
Bc 4. Xem li mn hnh thit k

Bc 5. To ngun d liu cho iu khin
Private Sub Page_Load() Handles MyBase.Load
'To d liu cho i tng DataTable: dtKhach_hang
rptKhach_hang.DataSource = dtKhach_hang
rptKhach_hang.DataBind()
End Sub
Bc 6. Thi hnh ng dng

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 90/174
IV. Cc v d m rng
IV.1. X l o hng sp xp trong DataGrid
V d minh ha di y x l o hng sp xp trong DataGrid. ng thi, trong v d ny,
chng ti thc hin lin kt d liu qua i tng DataView thc hin sp xp trn ngun d
liu.
Private Sub Page_Load(, e ) Handles MyBase.Load
If Not IsPostBack Then Lien_ket_du_lieu()
End Sub

Public Sub Lien_ket_du_lieu()
Dim dtKhach_hang As DataTable = Doc_ds_khach_hang()
Dim dvKhach_hang As New DataView(dtKhach_hang)

dvKhach_hang.Sort = ViewState("SortExpression")
If ViewState("SortAscending") = "false" Then
dvKhach_hang.Sort &= " desc"
End If
dtgKhach_hang.DataSource = dvKhach_hang
dtgKhach_hang.DataBind()
End Sub

Public Function Doc_ds_khach_hang() As DataTable
Dim sKet_noi As String
sKet_noi = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" & _
Server.MapPath("..\Data\QlBanSach.mdb")
Dim cnKet_noi As New OleDbConnection(sKet_noi)
Dim dsCSDL As New DataSet

'M v ng kt ni ngay khi thc hin xong
cnKet_noi.Open()
Dim daBo_doc_ghi As New OleDbDataAdapter _
("Select * From KHACH_HANG", cnKet_noi)
cnKet_noi.Close()

daBo_doc_ghi.Fill(dsCSDL, "KHACH_HANG")
Return dsCSDL.Tables("KHACH_HANG")
End Function

Private Sub dtgKhach_hang_SortCommand(, e )
Dim sSap_xep As String = ViewState("SortExpression")
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 91/174
Dim sHuong As String = ViewState("SortAscending")
ViewState("SortExpression") = e.SortExpression

If (e.SortExpression = sSap_xep) Then
ViewState("SortAscending") = IIf(sHuong = "false", "true", "false")
End If
Lien_ket_du_lieu()
End Sub
IV.2. To biu tng sp xp trong ct cho DataGrid

Sp xp tng dn theo tn khch hng

Private Sub dtgKhach_hang_ItemDataBound(, e )
If e.Item.ItemType = ListItemType.Header Then
Dim sSap_xep As String = ViewState("SortExpression")
Dim sHuong As String = ViewState("SortAscending")
Dim sKy_hieu As String = IIf(sHuong = "false", " 6", " 5")
Dim i%
For i = 0 To dtgKhach_hang.Columns.Count - 1
If sSap_xep = _
dtgKhach_hang.Columns(i).SortExpression Then
Dim cell As TableCell = e.Item.Cells(i)
Dim lblKy_hieu As New Label
lblKy_hieu.Text = sKy_hieu
lblKy_hieu.Font.Name = "webdings"
lblKy_hieu.Font.Size = FontUnit.XSmall
cell.Controls.Add(lblKy_hieu)
End If
Next
End If
End Sub
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 92/174
IV.3. nh dng hnh thc hin th cho dng d liu tha iu
kin trn DataGrid
Trong v d sau, chng ta thc hin t mu cho nhng khch hng c tn bt u bng k t H.
Private Sub dtgKhach_hang_ItemDataBound(, e )
If e.Item.ItemIndex < 0 Then Exit Sub
Dim sTen_kh As String
sTen_kh = e.Item.DataItem("Ten_khach_hang")

'Tin hnh kim tra iu kin,
'nu tha thc hin cc x l nh dng
If sTen_kh.StartsWith("H") Then
e.Item.BackColor = Color.LemonChiffon
e.Item.Cells(1).Font.Bold = True
End If
End Sub

T mu nhng khch hng c tn bt u bng k t H
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 93/174
IV.4. To hiu ng chn khi r chut qua cc dng d liu
Private Sub dtgKhach_hang_ItemDataBound(, e )
If e.Item.ItemIndex < 0 Then Exit Sub
e.Item.Attributes("onMouseOver") = _
"this.style.backgroundColor='#FFF8DC'"
e.Item.Attributes("onMouseOut") = _
"this.style.backgroundColor=''"
End Sub

To hiu ng chn dng d liu trn li

Kinh nghim ging dy:

Cc iu khin lin kt d liu (DataGrid, DataList, Repeater) h tr kh tt vic hin
th d liu trn trang web.
Do h tr kh nhiu chc nng, gio vin nn hng dn hc vin s dng tun t
tng chc nng m cc iu khin h tr. Sau khi nm vng cc thao tc ca tng
chc nng, hc vin c th phi hp cc chc nng ln cng mt bi tp.

Ti liu hng dn ging dy



Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 94/174

Bi 4
XY DNG LP X L D LIU
Tm tt
L thuyt 3 tit - Thc hnh 5 tit
Mc tiu Cc mc chnh Bi tp
Da trn nhng kin thc hc v
lp trnh hng i tng v thao tc
d liu vi ADO.NET, xy dng lp x
l d liu.
1. Thit k tng quan
2. Cu trc chi tit
Khai bo bin thnh vin
Danh sch cc thuc tnh
Nhm hm khi to i tng
Nhm hm cung cp thng tin
Nhm hm x l tnh ton
3. S dng lp i tng
4.1, 4.2, 4.3, 4.4
4.5
Bi lm thm:
4.6, 4.7, 4.8, 4.9

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 95/174
Khi c n phn ny, chc hn cc bn cng thc hin kh nhiu trang web: trang danh sch
khch hng, trang thng tin sch, Gi y, chng ta tm dng li, nhn li nhng kt qu mnh
lm. Bn c thy l ng vi mi trang web, chng ta u phi to chui kt ni, thc hin c
bng d liu, vit x l lin kt d liu
Ch mi vic hin th d liu trn trang Web, chng ta vit kh nhiu dng lnh trn , cha k
n nhng x l khc sau ny. S lng thao tc cn x l trn trang Web cng tng, s lng
dng lnh cng nhiu. Vic ln ln nhng on code v truy cp d liu v x l trn giao din
gy khng t kh khn trong vic xy dng, pht trin v bo tr ng dng web.
Chnh v l do , trong phn ny, chng ti hng dn cc bn xy dng lp x l v i tng th
hin d liu. Lp x l m nhn trch nhim thc hin cc thao tc truy xut v cp nht d liu.
i tng th hin nhn d liu, hin th d liu trn trang Web v tip nhn thng tin t ngi
dng. Vic phn chia cng vic c th cho tng i tng khng nhng gip cho chng ta xy dng
v pht trin ng dng mt cch c hiu qu m cn d dng trong qu trnh bo tr, ph hp vi
xu hng pht trin phn mm s dng cc ngn ng lp trnh hin i.



M hnh x l ca ng dng

X l nghip v
Ngi
X l th hin
D liu
X l lu tr
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 96/174
I. Thit k tng quan
gip cc bn d dng theo di cu trc chi tit ca lp x l lu tr d liu (XL_BANG), chng ta
s bt u tm hiu thit k tng quan ca n.
Nh tn gi ca n, lp x l lu tr (XL_BANG) thc hin cc chc nng:
Truy xut d liu t c s d liu
Thc hin cc cu lnh Sql
Imports System.Data
Imports System.Data.OleDb

Module PHAN_MEM
Public Const Chuoi_lien_ket As String = _
"Provider=Microsoft.JET.OLEDB.4.0;"
End Module

Public Class XL_BANG
Inherits DataTable
#Region "Khai bo bin thnh vin"
#End Region

#Region "Danh sch cc thuc tnh"
#End Region

#Region "Nhm hm khi to i tng"
#End Region

#Region "Nhm hm cung cp thng tin"
#End Region

#Region "Nhm hm x l tnh ton"
#End Region

#Region "X l s kin"
#End Region
End Class
Nhm t kha #Region v #End Region to ra cc phn vng gip chng ta d dng qun l cc
on lnh trong qu trnh xy dng lp.
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 97/174

Phn vng vi Region
Nh cc bn thy, lp XL_BANG c k tha t lp DataTable, ng ngha vi vic n s c
tha hng tt c nhng "ti sn" (cc thuc tnh, phng thc, ) t lp DataTable.
Trong lp x l trn, chng ta c thc hin cc thao tc truy xut v cp nht d liu, do , chng
ta cn s dng b th vin ca ADO.Net. B th vin c s dng trong lp x l ny l
System.Data.OleDb. L ng nhin, khi xy dng ng dng ca ring mnh, ty theo yu cu c
th ca ng dng, cc bn hon ton c th chn cho mnh b th vin khc, nh
System.Data.SqlClient chng hn.
Chng ti chia cc khai bo, x l thnh 6 nhm:
= Khai bo bin thnh vin: Khai bo cc bin thnh vin ca lp i tng trong nhm ny.
= Danh sch cc thuc tnh: m bo tnh bao bc ca phng php lp trnh hng i
tng, chng ta s dng cc thuc tnh thc hin giao tip gia bin thnh vin vi cc x l
bn ngoi lp.
= Nhm hm khi to i tng: Danh sch cc hm khi to lp i tng c thc hin
trong nhm ny.
= Nhm hm cung cp thng tin: Cc hm cung cp thng tin c c t lp i tng.
= Nhm hm x l tnh ton: Cc hm, th tc, thc hin cc x l, tnh ton theo yu cu
phc v cho vic cung cp thng tin, vn hnh lp i tng.
= X l s kin: Cc th tc x l s kin ca lp i tng
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 98/174
I.1. Cu trc chi tit lp XL_BANG
I.1.1. Khai bo bin thnh vin
#Region "Khai bo bin thnh vin"
'i tng truy xut cp nht d liu
Private WithEvents mBo_doc_ghi As OleDbDataAdapter

'Bin chui cha ni dung truy vn d liu
Private mChuoi_SQL As String = ""

'Bin cha tn bng mun truy vn
Private mTen_bang As String

'Bin kt ni dng chung n ngun d liu
Private Shared mKet_noi As OleDbConnection

'Bin cha thng tin v tr ngun d liu.
'Gi tr ny phi c gn trc khi s dng lp.
Public Shared Chuoi_CSDL As String
#End Region
I.1.2. Danh sch cc thuc tnh
ng vi mi bin thnh vin cn giao tip ra bn ngoi, chng ta cung cp thuc tnh tng ng
lm vic.
#Region "Danh sch cc thuc tnh"
Public Property Chuoi_SQL() As String
Get
Return mChuoi_SQL
End Get
Set(ByVal Value As String)
mChuoi_SQL = Value
End Set
End Property

Public Property Ten_bang() As String
Get
Return mTen_bang
End Get
Set(ByVal Value As String)
mTen_bang = Value
End Set
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 99/174
End Property
Public Shared Property Ket_noi() As OleDbConnection
Get
Return mKet_noi
End Get
Set(ByVal Value As OleDbConnection)
mKet_noi = Value
End Set
End Property

'Cho bit s dng ang hin th ca DefaultView
Public ReadOnly Property So_dong() As Integer
Get
Return DefaultView.Count
End Get
End Property
#End Region
I.1.3. Nhm hm khi to i tng
#Region "Nhm hm khi to i tng"
Public Sub New()
MyBase.New()
End Sub

'Th tc khi to c ton b bng
Public Sub New(ByVal pTen_bang As String)
MyBase.New(pTen_bang)
mTen_bang = pTen_bang
Doc_bang()
End Sub

'Th tc khi to c bng theo cu lnh sql
Public Sub New(ByVal pTen_bang As String, ByVal pChuoi_SQL As String)
MyBase.New(pTen_bang)
mTen_bang = pTen_bang
mChuoiSQL = pChuoi_SQL
Doc_bang()
End Sub
#End Region
Cc bn xem hm Doc_bang trong nhm hm cung cp thng tin
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 100/174
I.1.4. Nhm hm cung cp thng tin
#Region "Nhm hm cung cp thng tin"
'Thc hin ly cu trc v d liu vo DataTable.
'Sau , pht sinh b lnh cp nht d liu
Private Sub Doc_bang()
If mChuoi_SQL = "" Then mChuoi_SQL = "SELECT * FROM " & mTen_bang
If mKet_noi Is Nothing Then
mKet_noi = New OleDbConnection
mKet_noi.ConnectionString = _
Chuoi_lien_ket & "Data Source=" & Chuoi_CSDL
End If
Try
mBo_doc_ghi = New _
OleDbDataAdapter(mChuoi_SQL, mKet_noi)
mBo_doc_ghi.Fill(Me)
mBo_doc_ghi.FillSchema(Me, SchemaType.Mapped)
mBo_doc_ghi.SelectCommand.CommandText = _
"Select * FROM " & mTen_bang
Dim Bo_phat_sinh As New _
OleDbCommandBuilder(mBo_doc_ghi)
Catch ex As OleDbException
End Try
End Sub
#End Region
I.1.5. Nhm hm x l tnh ton
#Region "Nhm hm x l tnh ton"
'Hm cp nht cc thay i trn DataTable vo CSDL
Public Function Ghi() As Boolean
Dim ketqua As Boolean = True
Try
mBo_doc_ghi.Update(Me)
Me.AcceptChanges()
Catch e As Exception
Me.RejectChanges()
ketqua = False
End Try
Return ketqua
End Function

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 101/174
'Lc d liu ca DefaultView theo iu kin lc
Public Sub Loc_du_lieu(ByVal pDieu_kien As String)
Try
Me.DefaultView.RowFilter = pDieu_kien
Catch ex As Exception
End Try
End Sub

'Hm thc hin ni dung lnh truyn vo.
'- Nu thnh cng, tr v s mu tin c cp nht
'- Nu thnh cng, hm tr v -1
Public Function Thuc_hien_lenh(ByVal Lenh As String) As Integer
Try
Dim Cau_lenh As New OleDbCommand(Lenh, mKet_noi)
mKet_noi.Open()
Dim ket_qua As Integer = Cau_lenh.ExecuteNonQuery()
mKet_noi.Close()
Return ket_qua
Catch ex As OleDbException
Return -1
End Try
End Function

'Hm thc hin ni dung lnh tnh ton thng k
'- Nu thnh cng, tr v kt qu thng k
'- Nu thnh cng, tr v Nothing
Public Function Thuc_hien_lenh_tinh_toan(ByVal _
Lenh As String) As Object
Try
Dim Cau_lenh As New OleDbCommand(Lenh, mKet_noi)
mKet_noi.Open()
Dim ket_qua As Object = Cau_lenh.ExecuteScalar
mKet_noi.Close()
Return ket_qua
Catch ex As OleDbException
Return Nothing
End Try
End Function
#End Region
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 102/174
I.1.6. Nhm hm x l s kin
#Region "X l s kin"
'Cp nht gi tr ct AutoNumber lm kha chnh
Private Sub mBo_doc_ghi_RowUpdated _
(ByVal sender As Object, ByVal e As _
System.Data.OleDb.OleDbRowUpdatedEventArgs) _
Handles mBo_doc_ghi.RowUpdated
If e.Status = UpdateStatus.Continue AndAlso _
e.StatementType = StatementType.Insert Then
'Lay gia tri AutoNumber
If Me.PrimaryKey(0).AutoIncrement Then
Dim cmd As New OleDbCommand("Select @@IDENTITY", mKet_noi)
e.Row.Item(0) = cmd.ExecuteScalar()
e.Row.AcceptChanges()
End If
End If
End Sub
#End Region
I.2. Xy dng lp x l nghip v
Da trn lp x l lu tr (XL_BANG), xy dng cc lp x l nghip v ng vi mi bng trong c
s d liu (CSDL).

S lp XL_XXX
Trong :
Lp XL_BANG: c xy dng phn trn.
K hiu XXX: Tn cc bng tng ng trong CSDL.
XL_BANG
XL_XXX
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 103/174
Cc lp x l nghip v s c mu chung nh XL_CHU_DE mu di y.
Cu trc bng ch (CHU_DE)
Field Name Field Type Field Size Description
Mcd Autonumber Long Integer
Ten_chu_de Text 50
Ghi_chu Text 200
Chi tit lp XL_CHU_DE
Imports System.Data
Imports System.Data.OleDb

Public Class XL_CHU_DE
Inherits XL_BANG

#Region "Khai bo phng thc khi to"
Public Sub New()
MyBase.New("CHU_DE", "Select * From CHU_DE")
End Sub

Public Sub New(ByVal pMcd As Integer)
MyBase.New("CHU_DE", "Select * From CHU_DE " & _
"Where Mcd = " & pMcd)
End Sub

Public Sub New(ByVal pChuoi_SQL As String)
MyBase.New("CHU_DE", pChuoi_SQL)
End Sub
#End Region

#Region "Khai bo phng thc x l v tm kim"
Public Sub Tim(ByVal pDong_dieu_kien As DataRow)
Dim chuoi_Dk As String = ""
Dim mang_Dk As New ArrayList
Dim so_Pt As Byte = 0

If Not IsDBNull(pDong_dieu_kien("Ten_chu_de")) Then
mang_Dk.Add("Ten_chu_de LIKE '*" & _
pDong_dieu_kien("Ten_chu_de ") & "*'")
End If
'Tip theo cho nhng iu kin khc
'

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 104/174
If mang_Dk.Count > 0 Then
Dim i As Integer
For i = 0 To mang_Dk.Count - 1
If i = 0 Then
chuoi_Dk = mang_Dk(i)
Else
chuoi_Dk += " AND " + mang_Dk(i)
End If
Next
Loc_du_lieu(chuoi_Dk)
End If
End Sub
#End Region
End Class
I.3. S dng lp x l nghip v
Sau khi thit k lp x l hon tt, vic hin th d liu trn mn hnh by gi kh n gin. Xem
cc v d minh ha sau:
Hin th cc sch c trong bng SACH
'Khai bo bng sch: Bang_sach
Dim Bang_sach As XL_SACH

Private Sub Page_Load(, e ) Handles MyBase.Load
'Put user code to initialize the page here
If Not IsPostBack Then
Lien_ket_du_lieu()
End If
End Sub

Public Sub Lien_ket_du_lieu()
XL_BANG.Chuoi_CSDL = Server.MapPath("../Du_lieu/QlBanSach.mdb")
Bang_sach = New XL_SACH
Ds_Sach.DataSource = Bang_sach
Ds_Sach.DataBind()
End Sub
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 105/174
Nu mun hin th cc sch mi nhp:
Public Sub Lien_ket_du_lieu()
XL_BANG.Chuoi_CSDL = Server.MapPath("../Du_lieu/QlBanSach.mdb")
Bang_sach = New XL_SACH
Bang_sach.DefaultView.Sort = "Ngay_Cap_nhat desc"
Ds_Sach.DataSource = Bang_sach
Ds_Sach.DataBind()
End Sub
Nu mun hin th 10 cun sch mi nht:
Public Sub Lien_ket_du_lieu()
XL_BANG.Chuoi_CSDL = Server.MapPath("../Du_lieu/QlBanSach.mdb")
Bang_sach = New XL_SACH("Select Top 10 * " & _
"From SACH " & _
"Order By Ngay_cap_nhat desc")
Ds_Sach.DataSource = Bang_sach
Ds_Sach.DataBind()
End Sub
Nu mun hin th 10 cun sch mi nht ca ch c m l 5:
Public Sub Lien_ket_du_lieu()
XL_BANG.Chuoi_CSDL = Server.MapPath("../Du_lieu/QlBanSach.mdb")
Bang_sach = New XL_SACH("Select Top 10 * " & _
"From SACH " & _
"Where Mcd = 5 " & _
"Order By Ngay_cap_nhat desc")
Ds_Sach.DataSource = Bang_sach
Ds_Sach.DataBind()
End Sub
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 106/174
Kt qu hin th: (10 sch mi nht)

Mn hnh thng tin sch
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 107/174
Trong bng SACH, chng ta ch c thng tin v M ch (Mcd), M nh xut bn (Mnxb), ly
c tn ch , tn nh xut bn nh kt qu trong hnh minh ha trn, chng ta cn b sung cc
iu khin cn thit nh hnh bn di v thc hin nh sau:

Hiu chnh th tc Lien_ket_du_lieu nh sau:
Public Sub Lien_ket_du_lieu()
XL_BANG.Chuoi_CSDL =
Server.MapPath("../Du_lieu/QlBanSach.mdb")
Dim lenh_Sql As String
lenh_Sql = "SELECT SACH.*, " & _
"Ten_nha_xuat_ban, Ten_chu_de " & _
"FROM (NHA_XUAT_BAN NXB INNER JOIN SACH " & _
"ON NXB.Mnxb = SACH.Mnxb) " & _
"INNER JOIN CHU_DE CD ON CD.Mcd = SACH.Mcd"
Bang_sach = New XL_SACH(lenh_Sql)
Ds_Sach.DataSource = Bang_sach
Ds_Sach.DataBind()
End Sub

Kinh nghim ging dy:

Bi xy dng lp x l d liu hc vin c hc trong phn VB.Net. Trong phn
ny, gio vin dnh mt t thi gian n li, gip hc vin cng c li kin thc v lp
trnh hng i tng v cch xy dng cc lp i tng x l d liu.
Gio vin hng dn cho hc vin xy dng mt lp x l (khch hng chng hn), s
dng lp x l va xy dng ly d liu.
Da vo lp x l hng dn cho hc vin, gio vin yu cu hc vin to cc lp
x l cn li.

LinkButton
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 108/174

Bi 5
XY DNG I TNG TH HIN
Tm tt
L thuyt 6 tit - Thc hnh 10 tit
Mc tiu Cc mc chnh Bi tp
Thit k v xy dng iu khin ngi
dng (Web user control)
1. To mi i tng th hin
2. S dng i tng th hin
3. To phng thc cho i tng
th hin
4. To s kin cho i tng th hin
5. Phi hp hot ng cc i tng
th hin
5.1, 5.2, 5.3, 5.4,
5.5, 5.6, 5.10, 5.11
5.12
Bi lm thm:
5.7, 5.8, 5.9, 5.13,
5.14, 5.15

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 109/174
Xy dng iu khin ngi dng - user control rt cn thit cho vic ti s dng cc on m lnh
m ta xy dng chng, y l mt trong nhng tiu ch quan trng trong lnh vc xy dng phn
mm ni chung v xy dng ng dng web ni ring.
Xy dng iu khin ngi dng cng tng t nh vic xy dng cc trang web m chng ta
lm trc y. Ch c iu khc bit chnh l trong trang web, chng ta c nhiu thnh phn giao
din v x l tng ng cn trong iu khin ngi dng, chng ta ch thit k v xy dng cho
mt chc nng hay yu cu c th.
iu khin ngi dng cng c cc thuc tnh, phng thc v s kin nh cc Web Server control,
l ng nhin l cc thuc tnh, phng thc v s kin u do chng ta thit k v xy dng.
I. To mi i tng th hin
to mi i tng th hin, chn Add | Add Web User Control t thc n ng cnh ca ng
dng.

Chc nng to mi i tng th hin Web User Control


To mi i tng th hin: TH_SACH
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 110/174
Vic thit k v xy dng cc i tng th hin hon ton tng t nh cc bn tng lm vi
trang web. Chng ta cng xy dng i tng th hin thng tin sch.

Thit k th hin thng tin sch s dng DataList
Khi hon tt thit k i tng th hin, cng vic tip theo l vit cc x l cn thit cho cc iu
khin c trn i tng th hin theo yu cu s dng.
Vit cc x l cho i tng th hin:
Private Sub Page_Load(, e ) Handles MyBase.Load
If Not IsPostBack Then
'Khi to chui kt ni
Dim lSach As New XL_SACH
dtlSach.DataSource = lSach
dtlSach.DataKeyField = "Ms"
dtlSach.DataBind()
End If
End Sub

Private Sub dtlSach_ItemDataBound(, e )
'X l hin th Tn sch
'X l hin th hnh nh minh ha
'X l hin th thng tin tm tt ni dung
'X l hin th thng tin ch
'X l hin th thng tin nh xut bn
'X l hin th gi tin ca sch
End Sub
LinkButton
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 111/174
II. S dng i tng th hin
Sau khi thit k v vit cc x l, chng ta tin hnh a i tng th hin c xy dng vo
trang Web. Cc bc thc hin:
Bc 1. M trang web ch thit k - design.
Bc 2. T ca s Solution Explorer, chn i tng th hin cn s dng, nhn v ko r vo
trang web c m.

Ko i tng th hin vo trang Web
Bc 3. Thit lp cc thuc tnh cho iu khin va c ko vo
Khi thi hnh, kt qu hin th ca i tng th hin trn trang Web:

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 112/174
III. To phng thc cho i tng th hin
Trong v d trn, chng ta xy dng i tng th hin Sch. Khi to mi mt th hin Sch vo
trang web, thng tin sch s c hin th. Tuy nhin, chc hn cc bn s hi lng hn khi chng
ta thit k i tng th hin sch: TH_SACH, ch vi 1 i tng, nhng chng ta c th hin th
thng tin sch theo yu cu nh: Hin th sch mi va nhp, hin th sch bn chy nht, hin th
sch c nhiu c gi xem v bnh chn nht, hin th sch ca mt nh xut bn hay hin th
thng tin sch ca mt tc gi no . Th v qu phi khng cc bn?
lm c iu , rt n gin. Chng ta ch vic to cho i tng th hin cc phng thc -
hnh vi tng ng vi nhng yu cu c th.
Chng ta s tin hnh b sung cc phng thc sau vo i tng th hin va c xy dng.
Lu : Khi b sung cc phng thc hin th d liu cho i tng th hin, chng ta khng x l
hin th d liu trong s kin PageLoad.
Private Sub Page_Load(, e ) Handles MyBase.Load
'Khi to gi tr cho chui kt ni
End Sub

Public Sub Hien_thi_sach_co_ma(ByVal pMS As Long)
Dim lSach As New XL_SACH(pMS)
dtlSach.DataSource = lSach
dtlSach.DataBind()
End Sub

Public Sub Hien_thi_sach_ban_chay()
Dim lSach As New XL_SACH()
dtlSach.DataSource = lSach.Doc_sach_ban_chay()
dtlSach.DataBind()
End Sub

Public Sub Hien_thi_sach_moi()
Dim lSach As New XL_SACH()
dtlSach.DataSource = lSach.Doc_sach_moi()
dtlSach.DataBind()
End Sub

Public Sub Hien_thi_sach_theo_nxb(ByVal pMNxb As Long)
Dim lSach As New XL_SACH()
dtlSach.DataSource = lSach.Doc_sach_theo_nxb(pMNxb)
dtlSach.DataBind()
End Sub
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 113/174
Public Sub Hien_thi_sach_theo_chu_de(ByVal pMcd As Long)
Dim lSach As New XL_SACH()
dtlSach.DataSource = lSach.Doc_sach_theo_chu_de(pMaCD)
dtlSach.DataBind()
End Sub
IV. To s kin cho i tng th hin
Chc cc bn khng qun s kin Click ca cc iu khin Button (Button, LinkButton,
ImageButton). S kin Click xy ra khi Button c nhn vo. V mi y thi, vi iu khin
DataGrid, DataList, chng ta lm vic vi cc s kin: ItemCommand, EditCommand,
UpdateCommand, Mi s kin xy ra bi mt hnh ng tng ng trc ca ngi dng.
Cc i tng th hin m chng ta va xy dng cng vy, c kh nng pht ra cc s kin nu
c chng ta xy dng.
Chng ta cng to s kin cho th hin Sch. Trong th hin sch c cc thng tin m t lin quan:
Tn sch, Ch , Nh xut bn. Khi ngi dng chn chc nng no th iu khin s pht ra s
kin tng ng:
Tn sch iu khin s pht ra s kin Chon_sach(pMs)
Trong : pMs l M sch c ngi dng chn.
Ch iu khin s pht ra s kin Chon_chu_de(pMcd)
Trong : pMcd l M ch c ngi dng chn.
Nh xut bn iu khin s pht ra s kin
Chon_nha_xuat_ban(pMnxb)
Trong : pMnxb l M nh xut bn c ngi dng chn.

iu khin pht ra cc s kin tng ng
Pht ra s kin
Chon_sach
Pht ra s kin
Chon_chu_de
Pht ra s kin
Chon_nha_xuat_ban
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 114/174
IV.1. Thit k
Thit lp thuc tnh CommandName cho cc LinkButton: Tn sch, Ch v Nh xut bn.

Thit k thng tin sch vi DataList
Bng m t thuc tnh ca cc iu khin
iu khin Loi Thuc tnh Gi tr
lnkTen_sach LinkButton Text Tn sch
CommandName Ten_sach
lnkChu_de LinkButton Text Ch
CommandName Chu_de
lnkNha_xb LinkButton Text Nh xut bn
CommandName Nha_xuat_ban

IV.2. X l
Bc 1. Khai bo cc s kin:
Imports System.Web.UI.WebControls
Public Class TH_SACH
Inherits System.Web.UI.UserControl

Public Event Chon_sach(ByVal pMs As Long)
Public Event Chon_chu_de(ByVal pMcd As Long)
Public Event Chon_nha_xuat_ban(ByVal pMnxb As Long)
End Class
Bc 2. X l s kin ItemDataBound
Trong x l sau, chng ta gn gi tr cho thuc tnh CommandArgument ca cc LinkButton lu
tr cc m tng ng cho tng iu khin.
'X l cho Tn sch
Dim lnkTen_sach As LinkButton
lnkTen_sach = e.Item.FindControl("lnkTen_sach")
lnkTen_sach.Text = e.Item.DataItem("Ten_sach")
LinkButton
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 115/174
lnkTen_sach.CommandArgument = e.Item.DataItem("Ms")

'X l cho ch
Dim lChu_de As New XL_CHU_DE
Dim lnkChu_de As LinkButton
lnkChu_de = e.Item.FindControl("lnkChu_de")
Dim Mcd As Integer = e.Item.DataItem("Mcd")
lnkChu_de.Text = lChu_de.Thuoc_tinh(Mcd, "Ten_chu_de")
lnkChu_de.CommandArgument = Mcd

'X l cho nh xut bn
Dim lNXB As New XL_NHA_XB
Dim lnkNha_xb As LinkButton
lnkNha_xb = e.Item.FindControl("lnkNha_xb")
Dim Mnxb As Integer = e.Item.DataItem("Mnxb")
lnkNha_xb.Text = lNXB.Thuoc_tinh(Mnxb, "Ten_nha_xuat_ban")
lnkNha_xb.CommandArgument = MNXB
Bc 3. By bin c ItemCommand pht s kin tng ng
Private Sub dtlSach_ItemCommand(, e )
If e.CommandName = "Ten_sach" Then
Dim Ms As Long = e.CommandArgument
RaiseEvent Chon_sach(Ms)

ElseIf e.CommandName = "Chu_de" Then
Dim Mcd As Long = e.CommandArgument
RaiseEvent Chon_chu_de(Mcd)

ElseIf e.CommandName = "Nha_xuat_ban" Then
Dim Mnxb As Long = e.CommandArgument
RaiseEvent Chon_nha_xuat_ban(Mnxb)
End If
End Sub
Chng ta c th ng thi va x l bin c v pht ra s kin:
Private Sub dtlSach_ItemCommand(, e )
If e.CommandName = "Ten_sach" Then
Dim Ms As Long = e.CommandArgument
RaiseEvent Chon_sach(Ms)

ElseIf e.CommandName = "Chu_de" Then
Dim Mcd As Long = e.CommandArgument
Hien_thi_sach_theo_chu_de(Mcd)
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 116/174
RaiseEvent Chon_chu_de(Mcd)

ElseIf e.CommandName = "Nha_xuat_ban" Then
Dim Mnxb As Long = e.CommandArgument
Hien_thi_sach_theo_nxb(Mnxb)
RaiseEvent Chon_nha_xuat_ban(Mnxb)
End If
End Sub
Hin th sch theo ch Cng ngh thng tin

Cc sch ca ch Cng ngh thng tin

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 117/174

Bi 6
XY DNG V QUN L NG DNG
Tm tt
L thuyt 9 tit - Thc hnh 15 tit
Mc tiu Cc mc chnh Bi tp
S dng cc i tng qun l ng
dng thc hin cc chc nng iu
khin lung chng trnh, qun l
ngi dng hay chia s d liu gia
cc trang web.
Tm hiu cc tp tin qun l v cu
hnh ng dng.
T chc v xy dng ng dng.

1. i tng Response
2. i tng Request
3. i tng Application
4. i tng Session
5. i tng Server
6. i tng Cookies
7. Tp tin qun l v cu hnh ng
dng
8. T chc & xy dng ng dng
6.1, 6.2, 6.3, 6.4
Bi lm thm:
6.5, 6.6

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 118/174
Trong cc chng trc, chng ta tm hiu v lm vic vi cc iu khin, x l d liu vi
ADO.Net, to cc lp x l v xy dng cc i tng th hin, . l nhng k nng cn thit
xy dng ng dng.
Trong chng ny, chng ta s tm hiu cc i tng c dng xy dng, pht trin v qun
l ng dng web. Thng qua nhng i tng ny, chng ta c th ghi nhn nhng yu cu t
Client, qun l thng tin ngi dng, cu hnh v bo mt cho ng dng.
I. i tng Request, Response

Qu trnh Request - Response ca HTTP
I.1. i tng Response
i tng Response c s dng giao tip vi Client, n qun l v iu phi thng tin t Web
Server n cc trnh duyt ca ngi dng.
I.1.1. Phng thc Write
Phng thc Write ca i tng Response c dng in ra mt chui trn trang Web. Phng
thc ny l mt trong nhng phng thc ch lc trong cc ng dng web s dng ASP 3.0 khi cn
gi kt qu t Server v cho Client.
Response.Write("Cho bn. Bn ang tm hiu v i tng Response.")

Web Client
(Browser)
Resource
Web Server
Http Response
Http Request
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 119/174
Trong ASP.Net, chng ta c th thc hin nh sau:
lblChao.Text = "Cho bn. Bn ang tm hiu v i tng Response."
Qua v d trn, chc c l bn cng nhn ra rng, khi s dng phng thc Response.Write, chng
ta khng th qui nh v tr hin th ca chui trn trong trang Web. Thay vo , vi ASP.Net,
thng qua cc Server control, chng ta c th thc hin chc nng tng t nhng linh hot hn
bng cch t iu khin ti v tr cn hin th.
I.1.2. Phng thc Redirect
Phng thc Redirect gi thng ip yu cu Web Browser truy cp n mt a ch khc.
V d
'Nu ng nhp thnh cng
If <Kim tra ng nhp> Then
Response.Redirect("Chao.aspx")
Else
Response.Redirect("Dang_nhap.aspx")
End If
I.1.3. V d x l cho php ngi dng download file
V d: X dng i tng Response thc hin vic download tp tin.

Thit k

Thi hnh
Vit lnh x l:
Private Sub lnkDownload_Click(sender , e ) _
Handles lnkDownload.Click
Dim sTap_tin As String = "MinhHoa.zip"
Dim sDuong_dan As String
sDuong_dan = Server.MapPath("../Download/") & sTap_tin
Response.AddHeader("Content-Disposition", _
"attachment; filename=" + sTap_tin)
Response.WriteFile(sDuong_dan)
Response.End()
End Sub
LinkButton
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 120/174

Hin th hp thoi download tp tin
I.2. i tng Request
i tng Request c dng nhn thng tin t trnh duyt ca ngi dng gi v cho Web
Server.
I.2.1. Thuc tnh QueryString
Nh chng ti trnh by phn u ca cun sch ny, HTTP c xc nh qua URLs (Uniform
Resource Locators), vi cu trc chui c nh dng nh sau:
http: // <host> [: <port>] [ <path> [? <QueryString>]]
Phn cui ca chui URL l QueryString - cn c gi l chui tham s, c cu trc nh sau:
[?Tham_so_1=gia_tri_1[&Tham_so_2=gia_tri_2[&]]]
Trong trng hp c nhiu tham s, cc cp [<Tham_so> = <Gia_tri>] phn cch nhau bng du
&.
V d:
http://www.tuoitre.com.vn/Tianyon/Index.aspx?PID=16
http://www.tuoitre.com.vn/Tianyon/Index.aspx?ArticleID=89211&PID=16
Thuc tnh QueryString ca i tng Request cho php chng ta nhn cc gi tr truyn qua chui
tham s ny.
Request.QueryString("Tn_tham_s")
V d: Gi s mt ngi dng gi thng ip n Web Server yu cu trang:
"Request.aspx?Chuc_nang=Hieu_chinh&ID=123". ly gi tr 2 tham s trong chui
QueryString, chng ta thc hin nh sau:
Dim sChuc_nang As String
sChuc_nang = Request.QueryString("Chuc_nang")
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 121/174
lblChuc_nang.Text = sChuc_nang
Dim Id As Integer
Id = Request.QueryString("ID")
lblId.Text = Id
Trong trng hp tn tham s khng tn ti trong chui QueryString, thuc tnh
Request.QueryString() s tr v gi tr nothing.
Nu bn trong on lnh x l trn, chng ta c thc hin khai bo cc bin vi kiu d
liu tng ng cc tham s, nhn kt qu tr v t thuc tnh Request.QueryString(). Trong
trng hp tham s khng c truyn trong chui URL hoc c truyn m sai kiu d liu,
cc bin c to s c gi tr mc nh tng ng vi kiu d liu ca n, trnh c cc li v
kiu d liu khng ng c.

I.2.2. Cc v d minh ha
V d: Ly thng tin cc trnh duyt ca ngi dng.
Dim sThong_tin As String
With Request.Browser
sThong_tin &= "Browser: " & .Browser & "<br>"
sThong_tin &= "Version: " & .Version & "<br>"
sThong_tin &= "Platform: " & .Platform & "<br>"
sThong_tin &= "JavaScript: " & .JavaScript & "<br>"
lblThong_tin.Text = sThong_tin
End With

Thng tin ca trnh duyt ti Client
V d: Lit k danh sch cc bin Server
Dim sServer As String, i As Integer
With Request.ServerVariables
For i = 0 To .Count - 1
sServer &= .Keys(i) & ": " & .Item(i) & "<br>"
Next i
lblServer.Text = sServer
End With
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 122/174

Danh sch cc bin Server
II. i tng Session, Application
Application v Session l 2 i tng kh quan trng trong ng dng web, gip cc trang aspx c
th lin kt v trao i d liu cho nhau. Trong phn ny, chng ta s tm hiu v s dng 2 i
tng ny trong ng dng.

Quan h gia Session v Application
Web Server
Web Site
Application
Session Session
Session
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 123/174
II.1. i tng Application
i tng Application c s dng qun l tt c cc thng tin ca mt ng dng web. Thng
tin c lu tr trong i tng Application c th c x l trong bt k trang aspx no trong
sut chu k sng ca ng dng.
II.1.1. S dng bin Application
To bin Application
Application("Tn bin") = <gi tr>
Ly gi tr t bin Application
<bin> = Application("Tn bin")
V d:
Application.Lock()
Application("So_lan_truy_cap") = 0
Application("So_nguoi_online") = 0
Application.UnLock()
Ch :
Do ti mt thi im c th c nhiu ngi cng lc truy cp v thay i gi tr ca cc thng tin
c lu trong i tng Application, chng ta nn s dng b lnh Lock v UnLock ngay trc v
sau khi cp nht gi tr ca bin Application.
Bin Application c th c s dng bt k trang no v c duy tr trong sut chu k sng ca
ng dng.
II.1.2. Duyt qua tp hp bin cha trong Application
Dim i As Integer
Response.Write("<b><u>Danh sch cc bin trong i _
tng Application</u></b><br>")
For i = 0 To Application.Count() - 1
Response.Write(Application.Keys(i) & " : ")
Response.Write(Application(i) & "<br />")
Next i

Kt qu hin th
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 124/174
II.2. i tng Session
i tng Session c dng lu tr thng tin ca ngi dng trong ng dng. Thng tin c
lu tr trong Session l ca mt ngi dng trong mt phin lm vic c th. Web Server s t
ng to mt i tng Session cho mi ngi dng mi kt ni vo ng dng v t ng hy
chng nu ngi dng cn khng lm vic vi ng dng na.
Tuy nhin, khng ging nh i tng Application, i tng Session khng th chia s thng tin
gia nhng ln lm vic ca ngi dng, n ch c th cung cp, trao i thng tin cho cc trang
trong ln lm vic tng ng.
Trong ng dng web, i tng Session gi vai tr kh quan trng. Do s dng giao thc HTTP,
mt giao thc phi trng thi, Web Server hon ton khng ghi nh nhng g gia nhng ln yu
cu ca Client. i tng Session t ra kh hu hiu trong vic thc hin "lu vt v qun l thng
tin ca ngi dng".
II.2.1. Thuc tnh & Phng thc
a. Thuc tnh Timeout
Qui nh khong thi gian (tnh bng pht) m Web Server duy tr i tng Session nu ngi
dng khng gi yu cu no v li Server. Gi tr mc nh ca thuc tnh ny l 20.
Nu khng c yu cu no k t ln yu cu sau cng mt khong thi gian l <Timeout> pht, i
tng Session m Web server cp cho ln lm vic s t ng c gii phng. Nhng yu cu
sau c Web server coi nh l mt ngi dng mi, v ng nhin s c cp mt i
tng Session mi.
b. Phng thc Abandon
Nh cc bn bit, trong khong thi gian <Timeout> pht k t ln yu cu sau cng ca Client,
i tng Session vn c duy tr d cho khng c s tng tc no ca Client. iu ny ng
ngha vi vic Web server phi s dng mt vng nh duy tr i tng Session trong mt
khong thi gian tng ng.
Phng thc Abandon ca i tng Session s gii phng vng nh c dng duy tr i
tng Session trn Web Server ngay khi c gi thc hin. Nhng yu cu sau c Web
server coi nh l mt ngi dng mi.
II.2.2. S dng bin ton cc vi Session
To bin Session
Session("Tn bin") = <gi tr>
Ly gi tr t bin Session
<bin> = Session("Tn bin")
V d:
Lu tr thng tin khi ngi dng cha ng nhp h thng:
Session("Mkh") = 0
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 125/174
Session("Ten_dang_nhap") = ""
Khi ngi dng ng nhp h thng thnh cng, cp nht li thng tin ng nhp ca ngi dng
c lu trn Session.
Session("Mkh") = 1
Session("Ten_dang_nhap") = "dlthien"
Duyt qua tp hp bin cha trong Session
Dim i%
For i = 0 To Session.Count() - 1
Response.Write(Session.Keys(i) & " : ")
Response.Write(Session(i) & "<br/>")
Next
III. i tng Server
i tng Server c s dng cung cp thng tin ca Server cho ng dng.
= Thuc tnh MachineName
Thuc tnh ny c dng ly tn ca Web Server.
= Phng thc Mappath
Phng thc Mappath c dng ly ng dn vt l hoc ng dn o n mt th mc
trn Server.
= Phng thc Transfer(<ng dn n trang cn yu cu>)
Ngng thi hnh trang hin hnh, gi yu cu mi n trang c gi thc hin.
IV. i tng Cookies
IV.1. Gii thiu
C l bn cng tng ng k l mt thnh vin ca mt trang web hay mt forum no , v
chc cng khng t ln ngc nhin khi bn va yu cu n mt trang web hay forum m bn
ng k trc , trang web nhn ngay ra, bn chnh l thnh vin ca h v gi ngay li cho n
bn, chng hn: Cho Nguyn Anh Ti.
Lm sao m Web Server nhn ra c mnh nh? Mnh ng k t ngy hm qua kia m? Khng
u xa c, nhng thng tin c lu ngay chnh ti my ca bn. Nhng thng tin c Web
Server lu ti my Client c gi l Cookies.
Khng ging nh i tng Session, i tng Cookies cng c dng lu tr thng tin ca
ngi dng, tuy nhin, thng tin ny c lu ngay ti my gi yu cu n Web Server.
C th xem mt Cookie nh mt tp tin (vi kch thc kh nh) c Web Server lu ti my ca
ngi dng. Mi ln c yu cu n Web Server, nhng thng tin ca Cookies cng s c gi
theo v Server.
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 126/174

IV.2. Lm vic vi Cookies
IV.2.1. Thm Cookies
Response.Cookies.Add(<HttpCookie>)
V d:
Dim cookTen_dn As New HttpCookie("Ten_dang_nhap")
cookTen_dn.Value = txtTen_dang_nhap.Text
cookTen_dn.Expires = Date.Today.AddDays(1)
Response.Cookies.Add(cookTen_dn)
Trong v d trn, chng ta to ra Cookies c tn l Ten_dang_nhap lu tr tn ng nhp ca
ngi dng. Thng tin ny s c lu tr trn Cookies 1 ngy k t ngy hin hnh trn Web
Server.
IV.2.2. Ly gi tr t Cookies
Dim <bin Cookie> As HttpCookie
<bin Cookie> = Request.Cookies(<Tn Cookies>)
<bin Cookie>.Value ' Gi tr ca Cookies
Trong trng hp Cookies cha c lu hoc ht thi hn duy tr ti Client, gi tr nhn c l
Nothing.
Client Web Server
Cookies
Request
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 127/174
V. Tp tin qun l v cu hnh ng dng
V.1. Global.asax
Tp tin Global.asax c dng :
Khai bo v khi to gi tr cho cc bin Application, Session.
Vit x l cho cc s kin ca 2 i tng Application v Session.
V.1.1. Cu trc tp tin Global.asax
Public Class Global
Inherits System.Web.HttpApplication

Sub Application_Start(ByVal sender , ByVal e )
End Sub

Sub Session_Start(ByVal sender , ByVal e )
End Sub

Sub Application_BeginRequest(sender , e )
End Sub

Sub Application_Error(ByVal sender , ByVal e )
End Sub

Sub Session_End(ByVal sender , ByVal e )
End Sub

Sub Application_End(ByVal sender , ByVal e )
End Sub
End Class
V.1.2. Cc s kin trong tp tin Global.asax
= Application_Start: Ch xy ra mt ln u tin khi bt k trang no trong ng dng c gi.
Sub Application_Start(sender , ByVal e As EventArgs)
Application("So_luot_truy_cap") = 0
Application("So_nguoi_online") = 0
End Sub
= Session_Start: Xy ra khi c mt ngi dng mi yu cu n bt k trang aspx ca ng dng.
Khi Session_Start xy ra, mt gi tr duy nht (SessionID) s c to cho ngi dng, v gi tr
ny c s dng qun l ngi dng trong qu trnh lm vic vi ng dng.
Sub Session_Start(sender As Object, e As EventArgs)
Application("So_luot_truy_cap") += 1
Application("So_nguoi_online") += 1
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 128/174

Session("Mkh") = 0
Session("Ten_dang_nhap") = ""
End Sub
= Application_BeginRequest: Xy ra khi mi khi c Postback v Server.
= Sub Application_Error: Xy ra khi c li pht sinh trong qu trnh thi hnh.
= Session_End: Xy ra khi phin lm vic khng c gi yu cu hoc lm ti trang aspx ca ng
dng web trong mt khong thi gian (mc nh l 20 pht).
Sub Session_End(sender As Object, e As EventArgs)
Application("So_nguoi_online") -= 1
End Sub
= Application_End: Xy ra khi dng hot ng ca WebServer.
V d x l ghi nhn thng tin S lt truy cp vo c s d liu (nu cn).
V.2. Web.config
V.2.1. Cu trc tp tin web.config
Web.config l mt tp tin vn bn c s dng lu tr thng tin cu hnh ca mt ng dng,
c t ng to ra khi chng ta to mi ng dng web. Tp tin web.config c vit theo nh
dng XML.
Web.config c to k tha cc gi tr t tp tin Windows\Microsoft. NET\Framework\[Framework
Version]\CONFIG\machine.config
Tp tin cu hnh ng dng Web.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="Ole_Con" value="Provider=SQLOLEDB;
Data Source=dlthien;
Initial Catalog=QlBanSach;
User ID=Qlbs_app;
Password=Qlbs_app"/>
</appSettings>
<system.web>
<compilation defaultLanguage="vb" debug="true"/>
<customErrors mode="RemoteOnly" />
<authentication mode="Windows" />
<authorization>
<allow users="*" /> <!-- Allow all users -->
</authorization>

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 129/174
</system.web>
</configuration>
V.2.2. Cc cu hnh mc nh
a. <compilation defaultLanguage="vb" debug="true"/>
defaultLanguage: qui nh ngn ng mc nh ca ng dng.
debug: Bt/tt ch debug ca ng dng
b. <customErrors mode="RemoteOnly"/>
y l mt cu hnh kh cn thit cho ng dng Web. Hiu chnh cu hnh ny cho php chng ta
qun l vic x l li khi c li pht sinh trong ng dng.
Thuc tnh mode c cc gi tr: RemoteOnly, On v Off.
= RemoteOnly: Cho php ngi dng thy thng bo li ca h thng hoc trang thng bo li
c ch nh qua defaultRedirect (nu c).
Thng bo li gm: M li v m t li tng ng
<customErrors mode="RemoteOnly"
defaultRedirect="Error/Err.aspx"/>
= On: Ty theo gi tr ca defaultRedirect m c cc trng hp tng ng:
C qui nh trang thng bo li qua defaultRedirect: Hin th trang thng bo li.

Khng c thuc tnh defaultRedirect: Hin th trang bo li nhng khng c hin th m li
v m t li.
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 130/174

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 131/174
= Off: Hin th thng bo li ca trang aspx (nu xy ra li).

c. <sessionState>
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;
Trusted_Connection=yes"
cookieless="false"
timeout="20" />
= mode: Thuc tnh ny c 3 gi tr: InProc, sqlserver (lu trong database), v stateserver
(lu trong b nh)
= stateConnectionString: Cu hnh a ch v cng (port) ca my lu tr thng tin ca Session
trong vng nh (nu chc nng ny c chn).
= sqlConnectionString: Cu hnh kt ni n SQL Server c dng lu thng tin Session (nu
chc nng ny c chn).
= cookieless: Nu gi tr ca thuc tnh ny = True, thng tin cookie s c lu tr trong URL,
ngc li, nu = False, thng tin cookies s c lu tr ti client (nu client c h tr)
= timeout: Khong thi gian (tnh bng pht) m i tng Session c duy tr. Sau khong thi
gian ny, i tng Session s b hu. Gi tr mc nh ca thuc tnh ny l 20.
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 132/174
V.2.3. Lm vic vi tp tin web.config
Tp tin web.config c h tr tag <appSettings> vi 2 thuc tnh l key v value cho php chng
ta thm vo cc bin dng cu hnh ng dng.
Lu : Cc tn tag trong tp tin cu hnh web.config c phn bit ch hoa, ch thng.
<appSettings>
<add key="Tn bin" value="Gi tr" />
</appSettings>
V d:
To bin cu hnh Ole_Con dng lu tr thng tin ca chui kt ni n c s d liu SQL
Server:
<configuration>
<appSettings>
<add key="Ole_Con" value="Provider=SQLOLEDB;
Data Source=dlthien;
Initial Catalog=QlBanSach;
User ID=Qlbs_app;
Password=Qlbs_app"/>
</appSettings>
</configuration>
Ly gi tr thit lp trong tp tin web.config
gChuoi_ket_noi = ConfigurationSettings.AppSettings("Ole_Con")
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 133/174
VI. T chc & xy dng ng dng
VI.1. T chc lu tr ng dng
VI.1.1. Mn hnh giao din

Giao din ng dng qun l bn hng qua mng

Kinh nghim ging dy:

Trong phn ny, gio vin hng dn hc vin truy cp vo cc trang web vi nhiu
th loi khc nhau: Tin tc, bn hng trc tuyn, hc tp trc tuyn,
Da trn nhng trang web , gio vin gip hc vin xc nh cc thnh phn c
trn trang web cng nh trnh by cho hc vin thy c b cc (hnh thc trnh
by) ca cc trang web.

Ti liu hng dn ging dy



Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 134/174
VI.1.2. T chc lu tr

T chc lu tr ng dng
= Css: Lu tr cc tp tin *.css - tp tin qui nh hnh thc hin th.
= Data: Lu tr tp tin *.mdb - tp tin c s d liu.
= Hinh_minh_hoa: Lu tr cc tp tin hnh nh (*.bmp, *.gif, *.png, )
Trong th mc ny, chng ta c th t chc cc th mc con lu tr hnh nh theo ch ,
ngy,
= The_hien: Lu tr cc iu khin do ngi dng to - cc i tng th hin.
= Thu_vien: Lu tr cc tp tin th vin dng chung ca ng dng.
= Trang: Lu tr cc mn hnh - cc trang Web (*.aspx)
= Xu_ly: Lu tr cc lp x l d liu
VI.2. Xy dng ng dng
VI.2.1. Xy dng lp X l d liu
ng vi mi bng trong c s d liu, chng ta xy dng cc lp x l tng ng. Cc lp x l d
liu xy dng tng t nh lp XL_SACH. ( trnh by chng 5 phn I)
Thit k c s d liu ca ng dng Qun l bn hng c trnh by trong ph lc A - C s d
liu Qun l bn hng.
*.css
*.mdb
*.ascx
*.bmp, *.gif, *.png
*.vb *.aspx
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 135/174

Danh sch cc lp x l
VI.2.2. Thit k trang Web
Trc khi bt tay vo thit k cc i tng th hin v mn hnh giao din cho ng dng, chng ta
cng nn ngh ti s thit k trang web chy trn mn hnh c phn gii no (thng dng hin
nay l 800x600). Yu t ny tuy khng quan trng nhng n cng phn no quyt nh b cc trnh
by ca trang web.
Header - Tiu
Cc ch , chc
nng chnh ca
ng dng
Cc thng tin lin
quan:
Thng k s
ln truy cp
ng nhp
Qung co





Ni dung hin th









Cc ni dung, bi vit lin quan





Cc thng tin lin
quan:
Qung co
Tin nng


Footer Thng tin cng ty, tc gi, bn quyn
Kin trc tng th trang web

Ty theo yu cu v th loi ca ng dng m chng ta quyt nh cc kch thc (w, h)
cho tng trng hp c th.

w1
w2
w
h
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 136/174

Bi 7
WEB SERVICE
Tm tt
L thuyt 3 tit - Thc hnh 5 tit
Mc tiu Cc mc chnh Bi tp
Tm hiu Web Services
Xy dng v s dng Web Services


1. Tm hiu v Web Services
2. Xy dng Web Services
3. S dng Web Service
4. Xy dng Web Services truy xut
d liu
7.1, 7.2
Bi lm thm
7.3, 7.4, 7.5, 7.6,
7.7

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 137/174
Trong phn ny, chng ta s tm hiu Web services l g? Cng dng ca n nh th no? Sau khi
hiu c ngha v tm quan trng ca n, chng ta s bt tay vo xy dng Web Services.
I. Tm hiu v Web Services
Khi bn xy dng v pht trin mt ng dng phn tn vi s lng ngi dng ln n hng trm,
hng nghn ngi nhiu a im khc nhau, kh khn u tin m bn gp phi l s giao tip
gia Client v Server b tng la (firewalls) v Proxy Server ngn chn li.
Nh cc bn bit DCOM (Distribited Component Object Model) lm vic thng qua vic gi cc
thng tin di dng nh phn (binary) v ch yu hot ng da trn giao thc TCP/IP. Tht l
khng d dng s dng DCOM trong trng hp ny.

Nu khng cu hnh li Firewall, DCOM khng c kh nng vt qua Firewall
COM Client
COM Server
Firewall
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 138/174
Web Services c th gip bn gii quyt vn kh khn nu trn. Chng ta c th hiu rng Web
Services (tm dch l dch v web) l tp hp cc phng thc ca mt i tng m cc Client c
th gi thc hin.

Kin trc Web Services
Web Services c xy dng da trn SOAP (Simple Object Access Protocal). Khng ging nh
DCOM, SOAP c th c gi thc hin v tr v kt qu Text (theo nh dng XML) v c kh
nng hot ng "xuyn qua" tng la.
Ngoi kh nng u vit trn, Web Services c th phi hp hot ng gia cc ng dng rt tt.
Hnh minh ha trang bn l mt v d minh ha v s phi hp hot ng gia cc ng dng.
Cc nh hng, khch sn cung cp cc Web Services cho php t phng, t tic. ng st Vit
Nam cung cp cc Web Services cho php t v tu. Vit Nam Airline cung cp cc Web Services
cho php t v cho cc chuyn bay.
Cc c quan, cng ty, hay khch du lch c nhu cu t chc, tham gia cc chuyn du lch c th truy
cp vo website ca cc cng ty dch v l hnh ng k tham gia cc "tour" do h t chc.
Cng ty du lch s s dng Web Services c cung cp tin hnh t v tu la, my bay v
t phng cho chuyn du lch theo yu cu ca khch hng.

Web
Client

Windows
Client

Other
Phatforms
Web Server
SOAP Request

SOAP Response
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 139/174

Phi hp hot ng gia cc ng dng
Web Services l mt chun mi xy dng v pht trin ng dng phn tn, c kh nng lm vic
trn mi h iu hnh, m rng kh nng phi hp gia cc ng dng, c th ti s dng, tng
cng s giao tip gia Client v Server thng qua mi trng Web.


XML l nh dng d liu chun trao i gia cc Web Services

C Cl li ie en nt t

W We eb b S Se er rv vi ic ce e

W We eb b S Se er rv vi ic ce e

W We eb b S Se er rv vi ic ce e

W We eb b S Se er rv vi ic ce e
. .N Ne et t M My y S Se er rv vi ic ce e
Internet
ng st Vit
Nam
Vit Nam Airline
Khch sn
Nh hng
Khch du lch
Cng ty du lch
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 140/174
II. Xy dng Web Services
II.1. To Web Services trong VS .Net
Trong phn ny, chng ta s xy dng mt Web Service n gin c tn WS_PHEP_TOAN, vi
phng thc Cong_hai_so trong Visual Studio .Net
Chn Add|Add New Items t thc n ng cnh ca Project. Chn mc Web Service trong khung
Template. i tn Web Service cn to thnh WS_PHEP_TOAN.

To mi Web Service
Trong ca s vit lnh, c mt phng thc mu c to sn: phng thc HelloWorld.

2
1
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 141/174
Bn c nhn thy rng trc phng thc HelloWorld c sn t kha <WebMethod()>. Chng ta
s b sung vo phng thc Cong_hai_so.
<WebMethod()> _
Public Function Cong_hai_so(ByVal pA As Integer, _
ByVal pB As Integer) As Integer
Dim lTong As Integer
lTong = pA + pB
Return lTong
End Function
II.2. Kim tra Web Service
Sau khi xy dng thnh cng Web Service, trc khi a vo s dng, chng ta cng nn tin hnh
kim tra Web Service. Cc Web Service c xy dng trong VS.Net t ng pht sinh ra cc trang
kim tra tng ng. thc hin iu ny, cc bn chn WS_PHEP_TOAN.asmx lm trang khi
ng, nhn F5 thi hnh ng dng.

Mn hnh kim tra Web Service

Trang kim tra Web Service s lit k cc phng thc hin c trong Web Service c chn thi
hnh. Chn phng thc cn kim tra. y, chng ta chn phng thc Cong_hai_so. Xut hin
mn hnh nhp cc tham s cho phng thc Cong_hai_so.
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 142/174

Nhp cc tham s cn thit v nhn nt Invoke thi hnh, chng ta s thy xut hin trang kt
qu nh hnh bn di.


Mn hnh kt qu
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 143/174
III. S dng Web Service
Sau khi hon tt vic xy dng, kim tra tin cy v tnh chnh xc ca Web Service, chng ta s
tin hnh a Web Service i vo s dng.
s dng mt Web Service, Client cn phi bit Web Service h tr nhng phng thc no,
phng thc cn c nhng tham s no, kt qu tr v ra sao
Nhng thng tin ny ca mt Web Service c m t bi ti liu WSDL (Web Service Description
Language). WSDL l nh dng chun m t cc Web Service, s dng ngn ng XML.
Chng ta c th xem WSDL ca mt Web Service bng cch thm vo chui tham s wsdl vo sau
chui URL:
V d:
http://localhost/MinhHoa/Chuong09-WebService/WS_PHEP_TOAN.asmx?wsdl

WSDL ca Wes Service WS_PHEP_TOAN
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 144/174
III.1. S dng Web Service do ngi dng xy dng
S dng Web Service do chng ta xy dng tng t nh vic s dng cc lp i tng.
V d:
Dim phep_toan As New WS_PHEP_TOAN
lblKet_qua.Text = phep_toan.Cong_hai_so(4, 6)
III.2. S dng Web Services c cung cp min ph trn mng
bit c nhng Web Services c cung cp min ph trn mng, cc bn c th dng google
thc hin tm kim. y, chng ti gii thiu n cc bn trang: http://www.webservicex.net
cung cp kh nhiu cc Web Services hu ch.
Trong phn ny, chng ti s hng dn bn s dng cc Web Services ly thng tin t gi
ngoi t, thng tin thi tit, cc thnh ph chnh ca mt quc gia v cc n v tin t ca cc
quc gia trn th gii.
Cc bc thc hin:
Bc 1. Chn Add Web Reference t thc n ng cnh ca ng dng

Thm WebService vo ng dng
Bc 2. Nhp thng tin ng dn ca WebService, nhn thc hin vic xc thc Web
Service.
Bc 3. Nu Web Service c xc thc thnh cng, thng tin m t v Web Service s c hin
th ngay pha bn di. Trong v d ny, chng ta ln lt xc thc 3 Web Service sau:
http://www.webservicex.net/country.asmx?WSDL Cc quc gia
http://www.webservicex.net/globalweather.asmx?WSDL Thi tit
http://www.webservicex.net/CurrencyConvertor.asmx?WSDL T gi
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 145/174

Tham chiu Web Service
Bc 4. t tn tham chiu cho WebService: Web reference name.
Bc 5. Nhn Add Reference hon tt tham chiu WebService.
Bng trn m t cc phng thc v ti liu hng dn ca WebService

Danh sch cc Web Service c tham chiu
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 146/174
Bc 6. Thit k mn hnh

Mn hnh thit k
Vit lnh x l:
'Ly t gi ngoi t
Dim tgNgoai_te As New Ws_Ty_gia.CurrencyConvertor
lblUSD.Text = tgNgoai_te.ConversionRate( _
Ws_Ty_gia.Currency.USD, Ws_Ty_gia.Currency.VND)
lblEUR.Text = tgNgoai_te.ConversionRate( _
Ws_Ty_gia.Currency.EUR, Ws_Ty_gia.Currency.VND)
lblGBP.Text = tgNgoai_te.ConversionRate( _
Ws_Ty_gia.Currency.GBP, Ws_Ty_gia.Currency.VND)

'Ly thng tin thi tit cc thnh ph chnh
Dim lWeather As New Ws_Thoi_tiet.GlobalWeather
lblHN.Text = lWeather.GetWeather("Ha Noi", "Viet Nam")
lblHCM.Text = lWeather.GetWeather("Ho Chi Minh", "Viet Nam")
lblThanh_pho.Text = lWeather.GetCitiesByCountry("Viet Nam")

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 147/174
'Ly tn cc quc gia v n v tin t trn th gii
Dim lCountry As New Ws_Quoc_gia.country
lblDon_vi.Text = lCountry.GetCurrencyCode()
lblQuoc_gia.Text = lCountry.GetCountries()
T gi ngoi t v thng tin thi tit c ly t WebService vo lc: 9:30:00 AM ngy 13/06/2005
(gi Vit nam). Lc cc bn thi hnh, cc gi tr ny c th thay i.

Mn hnh kt qu
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 148/174
IV. Xy dng Web Services truy xut d liu
IV.1. Web Service: WS_KHACH_HANG
Trong phn ny, chng ta phi hp cc lp x l c xy dng Web service
WS_KHACH_HANG. Trong v d minh ha di y, chng ta xy dng ba th tc:
Doc_danh_sach_khach_hang
Them_khach_hang
Xoa_khach_hang
<WebMethod()> _
Public Function Doc_danh_sach_khach_hang() As DataSet
Dim lKhach_hang As New XL_KHACH_HANG
Dim lDataset As New DataSet
lDataset.Tables.Add(lKhach_hang)
Return lDataset
End Function

<WebMethod()> _
Public Function Them_khach_hang(ByVal pHo_kh As String, _
ByVal pTen_kh As String, _
ByVal pNgay_sinh As Date, _
ByVal pGioi_tinh As Boolean, _
ByVal pDia_chi As String, _
ByVal pTen_dn As String, _
ByVal pMat_khau As String) As Boolean
Try
Dim lKhach_hang As New XL_KHACH_HANG
Dim lDr As DataRow
lDr = lKhach_hang.NewRow()
lDr("Ho_khach_hang") = pHo_kh
lDr("Ten_khach_hang") = pTen_kh
lDr("Ngay_sinh") = pNgay_sinh
lDr("Gioi_tinh") = pGioi_tinh)
lDr("Dia_chi") = pDia_chi
lDr("Ten_dang_nhap") = pTen_dn
lDr("Mat_khau") = pMat_khau
lKhach_hang.Rows.Add(lDr)
lKhach_hang.Ghi_du_lieu()
Return True
Catch ex As Exception
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 149/174
Return False
End Try
End Function

<WebMethod()> _
Public Function Xoa_khach_hang(ByVal pMkh As Long)
Dim lKhach_hang As New XL_KHACH_HANG
lKhach_hang.Xoa_dong(pMkh)
End Function
Trong Web service trn, chng ta c s dng mt s phng thc t lp XL_KHACH_HANG. s
dng, chng ta cn b sung cc phng thc sau vo lp XL_KHACH_HANG:
'Xc nh ch s ca dng c m s tng ng
Public Function Lay_chi_so(ByVal pMa_so As Integer) As Long
Dim i as Long
For i = 0 To Me.So_dong() - 1
If Me.Rows(i)(Khoa) = pMa_so Then
Return i
End If
Next
Return -1
End Function

Public Sub Xoa_dong(pMa_so as Long)
Dim lChi_so as Long = Lay_chi_so(pMa_so)
If lChi_so >= 0 Then
Try
Me.Rows(lChi_so).Delete()
Ghi_du_lieu()
Catch e As Exception
End Try
End If
End Sub

Public Sub Ghi_du_lieu()
Try
mDa_Bo_doc_ghi.Update(Me)
Me.AcceptChanges()
Catch e As Exception
Me.RejectChanges()
End Try
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 150/174
End Sub
IV.2. S dng WS_KHACH_HANG
IV.2.1. Kim tra Web Service
Sau khi thit k thnh cng WS_KHACH_HANG, chng ta tin hnh kim tra Web service va to.

Danh sch cc phng thc ca WS_KHACH_HANG
Chn chc nng Doc_danh_sach_khach_hang.

Thi hnh phng thc Doc_danh_sach_khach_hang
Kt qu:

Kt qu di dng XML
IV.2.2. S dng Web Service WS_KHACH_HANG
Sau khi xy dng v kim tra thnh cng WS_KHACH_HANG, chng ta s dng web service va to
vo ng dng.
Vit lnh x l:
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 151/174
Private Sub Page_Load() Handles MyBase.Load
Dim lKhach_hang As New WS_KHACH_HANG
dtgKhach_hang.DataSource = lKhach_hang.Doc_danh_sach_khach_hang
dtgKhach_hang.DataBind()
End Sub
Mn hnh kt qu:

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 152/174
Bi 8
PH LC
Tm tt

Mc tiu Cc mc chnh Bi tp
Gii thiu v cc ph lc nh km ti
liu.


1. C s d liu dng trong ng dng
2. Gii thiu v cc tag HTML
3. Cascading Style Sheets - CSS
4. Gii thiu lp x l d liu


Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 153/174
I. C s d liu dng trong ng dng
I.1. Thit k c s d liu
I.1.1. Cu trc bng d liu
a. Bng Ch - CHU_DE
Field Name Field Type Field Size Description
Mcd Autonumber Long Integer
Ten_chu_de Text 50
b. Bng Sch - SACH
Field Name Field Type Field Size Description
Ms Autonumber Long Integer
Ten_sach Text 100
Don_vi_tinh Text 50
Don_gia Number Currency
Mo_ta Memo Tm tt ni dung
Hinh_minh_hoa Text 50 nh minh ha
Mcd Number Long Integer M ch
Mnxb Number Long Integer M nh xut bn
Ngay_cap_nhat Date/Time Ngy cp nht
So_luong_ban Number Long Integer
So_lan_xem Number Long Integer
c. Bng Khch hng - KHACH_HANG
Field Name Field Type Field Size Description
Mkh Autonumber Long Integer
Ho_khach_hang Text 50
Ten_khach_hang Text 50
Dia_chi Text 50
Dien_thoai Text 10
Ten_dang_nhap Text 15
Mat_khau Text 15
Ngay_sinh Date/Time
Gioi_tinh Yes/No Yes: Nam
Email Text 50
Da_duyet Yes/No Yes: duyt
d. Bng n t hng - DON_DAT_HANG
Field Name Field Type Field Size Description
Sdh Autonumber Long Integer
Mkh Number Long Integer
Ngay_dat_hang Date/Time
Tri_gia Number Currency
Da_giao_hang Yes/No Yes: giao
Ngay_giao_hang Date/Time
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 154/174
e. Bng Chi tit t hng - CT_DAT_HANG
Field Name Field Type Field Size Description
Sdh Number Long Integer
Ms Number Long Integer
So_luong Number Long Integer
Don_gia Number Double
Thanh_tien Number Double
f. Bng Nh xut bn - NHA_XUAT_BAN
Field Name Field Type Field Size Description
Mnxb Autonumber Long Integer
Ten_nha_xuat_ban Text 100
Dia_chi Text 150
Dien_thoai Text 15
g. Bng Tc gi - TAC_GIA
Field Name Field Type Field Size Description
Mtg Autonumber Long Integer
Ten_tac_gia Number Long Integer
Dia_chi Text 100
Dien_thoai Text 15
h. Bng Vit Sch VIET_SACH
Field Name Field Type Field Size Description
Stt Autonumber Long Integer
Mtg Number Long Integer
Ms Number Long Integer
Cc bng di y c dng Thm d d lun & Qung co
i. Bng Thm d - THAM_DO
Field Name Field Type Field Size Description
Mch Autonumber Long Integer
Ngay_dang Date/Time
Noi_dung Text 255
Tong_so_binh_chon Number Long Integer Mc nh = 0
j. Bng Thm d chi tit - THAM_DO_CT
Field Name Field Type Field Size Description
Mch Number Long Integer
Stt Number Long Integer 1,2,3,4, ng vi chn
A,B,C,D,
Noi_dung Text 255
So_lan_binh_chon Number Long Integer Mc nh = 0



Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 155/174
k. Bng Qung co - QUANG_CAO
Field Name Field Type Field Size Description
Stt Autonumber Long Integer
Ten_Cong_ty Text 200
Hinh_minh_hoa Text 100 nh minh ha
Duong_dan Text 100 (n trang q.co)
Ngay_ky_hd Date/Time Ngy k hp ng
Ngay_bat_dau Date/Time Bt u qung co
Ngay_ket_thuc Date/Time Ht hn qung co
I.1.2. Quan h gia cc bng

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 156/174
I.2. D liu th
I.2.1. Bng Ch - CHU_DE
Mcd Ten_chu_de
1 Ting Vit
2 Ngoi ng
3 Cng ngh thng tin
4 Lut
I.2.2. Bng Nh xut bn NHA_XUAT_BAN
Mnxb Ten_nha_xuat_ban Dia_chi Dien_thoai
1 Nh xut bn Tr 123 Nguyn Du 19001560
2 NXB Thng k 456 Cng Qunh 19001511
3 Kim ng 789 Nguyn Tri 19001570
4 Vn ha ngh thut 357 Cng Ha 0903118833
I.2.3. Bng Tc gi TAC_GIA
Mtg Ten_tac_gia Dia_chi Dien_thoai
1 TS. Nguyn Phng Lin 45 L Li 98877668
2 BS. V Th Uyn Thanh 18 T Hin Thnh 19001611
3 Nguyn Ngc Minh 27 Nguyn Hu 19001570
4 Nguyn Thin Bng 66 Trn Hng o 8504122
I.2.4. Bng Thm d - THAM_DO
Mch Noi_dung Ngay_dang
1 Qua trn thng trc Jubilo, bn d on
tuyn VN s thi u th no Cup Honda?
01/06/2005
I.2.5. Bng Thm d chi tit - THAM_DO_CT
Mch Stt Noi_dung So_lan_binh_chon
1 1 Thi u kh thuyt phc 0
1 2 Xem c 0
1 3 Bnh thng 0
1 4 Km 0

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 157/174
II. Gii thiu v cc tag HTML
II.1. C bn v tag HTML
II.1.1. Cc tag c bn
a. Tag cu trc
HTML bao gm 3 tag xc nh cu trc ca trang web bao gm:
<htm></html>
<head></head>
<body></body>
b. Tag nh dng vn bn
Mc d c rt nhiu tag nh dng vn bn, nhng tag sau y l nhng tag c bn nht m
gn nh bt c mt trang web no cng phi s dng:
<p>: bt u mt on vn bn mi
<br>: xung dng
<h1></h1>, <h2></h2>,: t dng vn bn nm trong cp tag l tiu
(heading).
c. Tag ghi ch
Cng nh cc ngn ng lp trnh, cho php ngi vit trang web t nhng ghi ch dnh ring cho mnh
vo trong trang web, HTML cung cp tag ghi ch. y l tag c bit so vi nhng tag khc:
<!-- ni dung ghi ch -->
Ghi nh tag qua ngha
HTML 4.0 c tng i nhiu tag, nh c nhiu, ngi vit thng phi hiu c ngha tn
ca mi tag. Cc tag trong HTML thng l vit tt ca nhng t gi nh nh: Paragraph,
BReack,
II.1.2. nh dng Text
a. nh dng kiu ch
Trong cc ti liu, vn bn chng ta thng s dng cc kiu ch m, nghing, gch di,v d
sau minh ho cc tag c dng nh dng kiu ch:
<html>
<body>
<b>In m</b> <br>
<strong>In rt m </strong><br>
<font size="4">c</font><big>h ln </big><br>
<em>nhn mnh</em><br>
<i>in nghing </i><br>
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 158/174
<small>ch nh</small><br>
Cng thc ho hc ca nc: H<sub>2</sub>O<br>
X bnh phng: X<sup> 2 </sup>
</body>
</html>
xem code HTML ca mt trang web c t IE, trn menu View, chn mc Source. Bn c th
hc hi c nhiu iu bng cch xem code HTML ca nhng trang web c thit k chuyn
nghip nhng hy nh rng nhng trang web p lun c vit rt cng phu v thng s dng
nhiu cng c (tool) h tr.
b. Font ch, mu sc v canh l
<font face="" size="" color="#HHHHHH"></font>
<p align="left/right/center">
V d:
<p align="center">
<font face="Algerian" size="5">Computer Joke </font>
<p><u>K thut vin</u>:
<font face="Arial">My tnh ca anh c a mm ch ?</font>
<p><u>Khch</u>:
<i><font face="Times New Roman">Ti khng nhn thy bn trong. C ch
&quot; <b>Intel Pentium <font color="#FF0000">Inside</font>
</b>&quot;</font></i>
</p>
Thuc tnh ca mt tag
Mt thng tin nh dng c th gm nhiu chi tit, trong v d trn, font ch s hin th cho mt
chui vn bn c ch nh qua tag <font> tuy nhin, font ch li gm nhiu chi tit nh: tn font,
kch thc, mu sc,
Cc thng tin chi tit c gi l cc thuc tnh ca tag. Mt tag c th c nhiu thuc tnh. Bn
nn t gi tr ca thuc tnh trong du ngoc kp.
nh dng trc ni dung vn bn
Web browser s khng quan tm n cch bn trnh by on code HTML trong file .html m ch
da vo cc tag trnh by ni dung trang web.
Tag <pre> c dng khi bn mun yu cu web browser "tn trng" cc khong trng v xung
dng trong on code HTML ca mnh.
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 159/174
V d:
Khng
c tag
&lt;pre&gt;
<pre>
on vn bn ny
nm trong
tag &lt;pre&gt;
</pre>
Kt qu:
Khng c tag <pre>
on vn bn ny
nm trong
tag <pre>
II.1.3. Lin kt cc trang web (Link)
URL: (Uniform Resource Locator), l mt ng dn c dng trn Internet ch ti mt trang
web c th no . Thut ng thng dng thay cho url l : "a ch"
Domain name: L tn d nh ca mt a ch. Nhng tn ny c qun l bi mt t chc quc
t, m bo khng c hai a ch khc nhau no c cng tn. Nu bn mun website ca mnh c
mt tn gi nh mi ngi c th truy cp, bn s phi em tn i ng k.
Trong domain name, phn cui cng dng phn loi cc website:
Com : commercial website thng mi, kinh doanh
Edu : education website v gio dc, o to
Gov : government website ca chnh ph
vn, uk, au, : vietnam, united kingdom, austratlia website ca quc gia no.
a. To lin kt
HTML dng tag <a> (anchor) to lin kt ti mt trang web. Tag <a> c ba thuc tnh chnh l:
href : a ch ca trang web mun lin kt
target : ca s s hin th trang web
name : tn ca mi lin kt
V d:
<a href="http://www.yahoo.com">Lin kt ti Yahoo!</a>
Thuc tnh target ch ra ca s s dng m trang web mi. Nu khng t gi tr cho target,
trang web bn ang xem s b thay th bng trang web mi. m trang web trong mt ca s
mi, t target="_blank"

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 160/174
b. Lin kt trong cng trang web
Nu nh cho bn c quyn t tn cho cc tag ca HTML, c l bn s thay <a> bng <l>
(Link) th ng hn. Tuy nhin <a> thc s mang ngha l mt m neo (anchor) khi bn dng
lin kt ti mt on vn bn no trong chnh bn thn trang web.
Thuc tnh name ca <a> dng t tn cho on vn bn s lin kt ti. Ch , gi tr ca name
c du # ng trc.
V d:
<a href="#EndOfPage">n cui trang</a>
<!-- nhiu dng -->
<a name="#EndOfPage">cui trang</a>
c. Lin kt vi a ch email
cho php ngi c gi mail cho bn bng cch click vo lin kt, gn gi tr "mailto:a ch
email" cho thuc tnh href.
II.1.4. Danh sch (List)
Danh sch gm 2 loi: c th t v khng c th t
Danh sch trong HTML tng t nh nh dng Bullets and Numbering trong Word. Thng thng,
chng ta t phn bit gia danh sch c th t v khng c th t. Vi danh sch c th t, mi
mc s c nh th t 1, 2, 3 hay a, b, c, trong khi vi danh sch khng c th t, mi mc
s bt u bng du , , -, O,
Trong HTML, mi mc trong danh sch c bt u bng tag <li>. Cc mc trong danh sch li
c t trong mt tag danh sch. HTML c cc tag danh sch:
<ol> : ordered list danh sch c th t
<ul> : unordered list danh sch khng c th t
V d:
Ni dung mn hc lp trnh web c bn
<ol>
<li>HTML </li>
<li>JavaScript </li>
</ol>
Kt qu:
Ni dung mn hc lp trnh web c bn
1. HTML
2. JavaScript
V d:
Ni dung mn hc lp trnh web c bn
<ul>
<li>HTML </li>
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 161/174
<li>JavaScript </li>
</ul>
Kt qu:
Ni dung mn hc lp trnh web c bn
HTML
JavaScript
Thuc tnh type ca cc tag danh sch cho php bn nh li cc s th t hay bullet hin th u
mi mc trong danh sch. Cc gi tr ca type:
<ol> - Order list <ul> - Unorder list
"A" : A, B, C,
"a" : a, b, c,
"I" : I, II, III,
"i" : i, ii, iii,
"1" : 1, 2, 3, (mc nh)
"disk" :
"circle" : O
"square" :
II.1.5. Hnh nh (Image)
HTML nhng phin bn u tin khng h tr vic a hnh nh vo cc trang web. HTML gi y
cho php bn a vo trang web khng ch hnh nh m c cc file "nhng" nh video, m
thanh. Nn s dng cc nh dng file thng dng m web browser h tr nh GIF, JPEG, BMP,
PNG
a. a hnh nh vo trang web
HTML s dng tag <img> (image) hin th hnh nh. Thuc tnh quan trng nht ca <img> l
src (source) c gi tr l mt URL ch ra ng dn ti file hnh nh mun hin th.
V d:
Yahoo! <img src="yahoo.gif">
Kt qu:
Yahoo!
Ch : nu file hnh nh ca bn khng nm chung th mc vi file .html th bn phi ch ra ng
dn ti file .
b. Thuc tnh atl
Trong cc trng hp hnh nh khng c hin th do khng tm thy file hay web browser khng
nhn c file t pha web server, c th s dng thuc tnh alt (alternate) vi gi tr l ni dung
m t tm tt hnh nh mun th hin ngi dng d nhn bit.
V d:
Yahoo!
<img src="yahoo.gif" alt="Bieu tuong cua Yahoo!">
Kt qu: (khi khng c file c:\yahoo.gif)
Yahoo!
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 162/174
c. Xc nh chiu rng v chiu cao
thay i chiu rng v chiu cao ca hnh nh, s dng hai thuc tnh width v height. Gi tr
ca width v height thng dng l pixel (mc nh) v %.
V d:
Yahoo! <img src="c:\yahoo.gif" width="30" height="30">
Kt qu:
Yahoo!
II.1.6. Bng (Table)
a. C php
<table>
<tr> <td> </td> <td> </td> </tr>
<tr> <td> </td> <td> </td> </tr>
</table>
HTML s dng b mt cu trc tag gm c <table>, <tr> v <td> nh dng cc bng:
<table>: phn nm trong tag l mt cu trc cc dng v ct ca bng
<tr> - Table Row: phn nm trong tag l cu trc cc ct ca mt dng
<td> - Table Data: phn nm trong tag l ni dung ca mt cell (mt ct ca mt dng)
V d:
<table border="1" width="100%">
<tr>
<td>Ct 1 dng 1</td><td>Ct 2 dng 1</td>
<td>Ct 3 dng 1</td>
</tr>
<tr>
<td>Ct 1 dng 2</td><td>Ct 2 dng 2</td>
<td>Ct 3 dng 2</td>
</tr>
</table>
Kt qu:
Ct 1 dng 1 Ct 2 dng 1 Ct 3 dng 1
Ct 1 dng 2 Ct 2 dng 2 Ct 3 dng 2
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 163/174
b. Width, CellSpacing v CellPadding
width: nh rng ca table hay cc ct.
cellspacing: nh khong cch gia cc cell.
cellpadding: nh khong cch t bin ca cell ti ni dung trong cell.
Nu khng ch nh rng cho table, web browser t ng chnh rng table cha phn ni
dung bn trong. Tng t, rng ct s t ng co gin thch hp vi ni dung cha trong
ct. Ch nh gi tr cho width gip bn kim sot c web browser trnh by trang web ca mnh.
Gi tr ca width c th o bng pixel hay %. Thng thng ta hay dng %.
V d:
<table border="1" width="50%">
<tr><td width="25%"></td><td width="75%"> </td></tr>
<tr><td width="25%"></td><td width="75%"> </td></tr>
</table>
Kt qu:


II.2. Cc tag nhp liu
II.2.1. Tag <input>
Hu ht cc iu khin c bn trong <form> u c to bng tag <input>, cu trc ca tag
<input> nh sau:
<input type="loi_iu_khin" name="" value="">
type : loi iu khin mun to. C 5 loi iu khin l:
TextBox "text"
CheckBox "checkbox"
OptionBox "radio"
Button "button"
Submit/Reset "submit"/"reset"
name: Tn ca iu khin. Tng t nh cc form bn lp trnh trn Windows, mi iu khin nn
c mt tn ring bit. Ring vi trng hp OptionBox, gom nhiu option thnh mt nhm, cc
OptionBox s c gi tr ca thuc tnh name ging nhau.
value: Chui vn bn hin th trn iu khin. Vi TextBox l ni dung ca TextBox, vi Button (k
c Submit v Reset) l tiu ca iu khin.
V d:
<form name="form1">
<table border="0">
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 164/174
<tr>
<td width="13%">Tn ng nhp</td>
<td><input type="text" name="txtUsername"></td>
</tr>
<tr>
<td width="13%">Mt khu</td>
<td><input type="text" name="txtPassword"></td>
</tr>
<tr>
<td width="13%">&nbsp;</td>
<td><input type="checkbox" name="chkNewUser">
To ngi dng mi</td>
</tr>
</table><p>
<input type="submit" value="ng nhp" name="cmdSubmit">
<input type="reset" value="Xo trng" name="cmdReset">
</form>
Kt qu:

Qua v d trn, c th thy rng trong <form></form> bn c php s dng cc tag nh dng
trnh by form nh <table>, <p>,
Ch :
Vi CheckBox v OptionBox, thuc tnh checked dng nh du chn vo CheckBox hay
OptionBox khi trang web hin th.
Thuc tnh size ca textbox dng ch nh chiu rng ca textbox, n v ca size l s k t.
Tuy nhin, ni dung ca textbox khng b gii hn bi size.
II.2.2. Vng nhp liu tag <textarea>
iu khin TextBox m bn to bng tag <input> ch c kh nng nhn vo mt dng vn bn.
c mt TextBox cho php nhp nhiu dng bn s dng tag <textarea></textarea>.
<textarea rows="" cols="" name="">Ni dung</textarea>
Khc vi tag <input>, tag <textarea> cn kt thc bi </textarea>. Ni dung ca TextBox to
bng <textarea> cng khng nh bi gi tr ca thuc tnh value, thay vo , phn ni dung ny
nm gia cp tag.
Thuc tnh cols ca <textarea> tng t nh thuc tnh size ca <input type="text"> xc nh
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 165/174
chiu rng ca TextBox tnh bng s k t. Thuc tnh rows cho bit chiu cao ca TextBox.
V d:
<form name="form1">
<input type="text" name="T1" value="Xin cho"><p>
<textarea rows="3" name="S1" cols="50">Hello
</textarea>
</form>
Kt qu:

II.2.3. ComboBox v ListBox
iu khin ComboBox v ListBox phc tp hn so vi cc iu khin c bn v cn nh ngha cc
mc chn. HTML s dng tag <select> khai bo c hai loi iu khin ny:
V d:
Mn hc:<br>
<select size="3" name="lstMonHoc" multiple>
<option value="1">Visual Basic</option>
<option selected value="2">Visual C++</option>
<option value="3">Java</option>
</select>
Kt qu:

Thuc tnh size gip web browser xc nh iu khin l mt ComboBox (size="1") hay
ListBox (size>1).
Tag <option>, nh bn thy trong v d, c t trong cp tag <select> nh ngha cc
mc chn.
Tn mc chn c t trong trong cp tag <option></option>
Mc chn mc nh c biu th qua thuc tnh selected.
Thuc tnh value cho bit gi tr ca mc chn. Bn s cn bit gi tr ca mc chn khi x l
d liu nhp ca form.
Nu bn mun ListBox c th c chn nhiu mc cng mt lc, hy s dng thuc tnh
multiple ca tag <select>.
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 166/174
III. Cascading Style Sheets - CSS
III.1. Gii thiu CSS
III.1.1. CSS l g
CSS: Cascading Style Sheets
Cc Style nh ngha cch trnh duyt hin th cc i tng HTML
Cc Style c lu trong Style Sheet
Cc Style Sheet c lp c lu trong file CSS ring bit
Cc Style Sheet c lp c th tit kim nhiu thi gian cho bn
Nhiu nh ngha Style cho cng mt loi i tng s c s dng theo lp.
III.1.2. Style gip bn gii quyt nhiu vn
HTML tag c thit k nh dng cch hin th ni dung ca mt trang Web bng cch nh
ngha nh "y l phn header", "y l mt on", "y l mt bng", Mi trnh duyt hin th
ni dung trang Web theo cch ring ca mnh da trn nhng nh ngha .
Cc trnh duyt thng dng nh Internet Explorer hay Netscape lin tc thm tht cc tag HTML
mi ca ring mnh vo danh sch cc HTML tag chun ca W3C lm cho vic to lp cc vn bn
Web hin th c lp trn mi trnh duyt ngy cng kh khn.
gii quyt vn ny, W3C (World Wide Web consortium- t chc chu trch nhim to lp cc
chun trn Web) to ra cc STYLE cho HTML 4.0
C Netscape 4.0 v Internet Explorer 4.0 u h tr Cascading Style Sheets.
I.1.1 Style Sheet tit kim nhiu cng sc thit k
Cc Style trn HTML 4.0 nh ngha cch m cc thnh phn HTML c hin th. Cc Style thng
c lu trong cc file c lp vi trang Web ca bn. Cc file CSS c lp cho php bn thay i
hnh thc th hin v khun dng ca tt c cc trang trong Website thng nht m ch phi thc
hin thay i mt ln.
I.1.2 Style no s c dng?
Ta c th ni rng, cc Style s c s dng theo "lp" (cascade) u tin khi nhiu Style nh
ngha mt thnh phn HTML c tham chiu trong mt file HTML. Th t u tin c sp xp t
cao xung thp:
Style cho thnh phn HTML c th
Style trong phn HEAD
Style trong file CSS
Mc nhin theo trnh duyt
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 167/174
III.2. C php CSS
C php ca CSS gm 3 phn: i tng, thuc tnh v gi tr:
i tng {thuc tnh: gi tr}
i tng thng l cc tag HTML m bn mun nh ngha cch hin th. Thuc tnh l thuc tnh
hin th ca i tng . Gi tr l cch m bn mun mt thuc tnh hin th nh th no. Cp
{thuc tnh: gi tr} c t trong du {}.
Body {color: black}
Nu gi tr gm nhiu t, t chng trong du nhy i:
p {font-family: "sans serif"}
Nu bn mun nh ngha nhiu thuc tnh ca mt i tng, phn cch cc cp thuc tnh: gi tr
bng du (;).
p {text-align: center; color: red}
nh ngha Style c d c hn:
P {
text-align: center;
color: black;
font-family: arial
}
III.2.1. Nhm nhiu i tng
Bn c th nh ngha mt Style cho nhiu i tng cng mt lc:
h1, h2, h3, h4, h5, h6 {
color: green
}
III.2.2. Thuc tnh Class
Vi thuc tnh Class, bn c th nh ngha nhiu Style khc nhau cho cng mt i tng. V d,
bn mun c hai Style cho cng mt tag <P>, nu tag <P> no c class=right s canh l bn phi,
class=center s canh gia:
p.right {text-align: right}
p.center {text-align: center}
Trong trang HTML:
<p class="right">
on ny s c canh phi.
</p>
<p class="center">
on ny s c canh gia.
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 168/174
</p>
Bn cng c th b qua tn i tng nh ngha kiu Style cho tt c cc thnh phn c Class
m bn nh ngha. V d:
.center {
text-align: center;
color: red
}
Trong trang HTML sau, c H1 v on vn bn u c canh gia:
<h1 class="center">
Tiu ny s c canh gia.
</h1>
<p class="center">
on ny s c canh gia.
</p>
III.2.3. Thuc tnh ID
Thuc tnh ID c th dng nh ngha Style theo hai cch:
Tt c cc thnh phn HTML c cng mt ID.
Ch mt thnh phn HTML no c ID c nh ngha.
V d sau, Style dng cho tt c cc thnh phn HTML c ID l "intro":
#intro {
font-size:110%;
font-weight:bold;
color:#0000ff;
background-color:transparent
}
V d sau, Style ch dng cho thnh phn <P> no c ID l "intro" trong trang Web.
p#intro {
font-size:110%;
font-weight:bold;
color:#0000ff;
background-color:transparent
}
III.2.4. Ghi ch trong CSS
CSS dng cch ghi ch tng t nh ngn ng C: cc on ghi ch bt u bng /* v kt thc bi
*/. V d:
/* y l phn ghi ch */
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 169/174
p {
text-align: center;
/* y l phn ghi ch */
color: black;
font-family: arial
}
III.3. S dng CSS trong trang HTML
III.3.1. Lm th no chn vo mt Style Sheet
Khi trnh duyt c mt Style, n s nh dng ni dung trang Web theo Style . C 3 cch s
dng Style trong mt trang HTML.
III.3.2. Dng file CSS ring
File CSS c lp nn dng khi Style c p dng cho nhiu trang. Mi trang s dng Style nh
ngha trong file CSS s phi lin kt n file bng tag <link> t trong phn HEAD:
<head>
<link rel="stylesheet" type="text/css"
href="tn_file.css" />
</head>
V d mt file CSS: Style.css
hr {color: sienna}
p {margin-left: 20px}
body {background-image: url("images/back40.gif")}
III.3.3. nh ngha cc Style trong phn HEAD
Cc Style nh ngha trong phn HEAD c th dng cho nhiu thnh phn HTML trong trang Web
. Bn s dng tag <Style> nh ngha Style:
<head>
<style type="text/css">
hr {color: sienna}
p {margin-left: 20px}
body {background-image: url("images/back40.gif")}
</style>
</head>
Ghi ch: Trnh duyt thng b qua cc tag HTML m n khng bit, do cc trnh duyt
khng h tr CSS khng hin th phn nh ngha Style, bn nn t trong tag ghi ch ca HTML:
<!-- -->
<head>
<style type="text/css">
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 170/174
<!--
hr {color: sienna}
p {margin-left: 20px}
body {background-image: url("images/back40.gif")}
-->
</style>
</head>
III.3.4. Dng Style cho mt thnh phn HTML c th
Style cho mt tag HTML c th gn nh khng tn dng c cc li im ca CSS ngoi tr cch
hin th i tng. Bn dng thuc tnh Style nh ngha Style cho thnh phn HTML.
<p style="color: sienna; margin-left: 20px">
y l on vn bn
</p>
III.3.5. Nhiu Style cho mt i tng
Nu mt i tng c nh ngha nhiu Style, n s s dng Style c th nht. V d, mt file
CSS nh ngha tag H3 nh sau:
h3 {
color: red;
text-align: left;
font-size: 8pt
}
Trong mt file HTML c phn nh ngha Style cho H3 nh sau:
h3 {
text-align: right;
font-size: 20pt
}
Nu trang HTML c link n file CSS trn, Style cho H3 s nh ngha nh sau:
Color: red;
text-align: right;
font-size: 20pt
III.3.6. Cc v d
a. Mu ch, mu nn
<html>
<head>
<style type="text/css">
body {background-color: rgb(250,250,250)}
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 171/174
h1 {background-color: #00ff00; color: #0000ff}
h2 {background-color: transparent; color: #dda0dd}
p {color: #0000FF}}
</style>
</head>
<body>
<h1>y l dng tiu : Header 1</h1>
<h2>y l dng tiu : Header 2</h2>
<p>y l mt on vn bn</p>
</body>
</html>

b. Canh l vn bn
<html>
<head>
<style type="text/css">
h1 {text-align: center}
h2 {text-align: left}
h3 {text-align: right}
</style>
</head>
<body>
<h1>y l Header 1</h1>
<h2>y l Header 2</h2>
<h3>y l Header 3</h3>
</body>
</html>

Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 172/174
c. Hnh nn cho trang Web
<html>
<head>
<style type="text/css">
Body {
background-image:
url('Hinh_nen.jpg');
background-repeat: repeat-x
}
</style>
</head>
<body>
</body>
</html>
Mc nh, hnh nn s c t y trang Web. Tuy nhin, nu chng ta mun t hnh nn theo
hng ngang, hay ng, ta chn gi tr cho thuc tnh background-repeat tng ng: repeat-
x/repeat-y/repeat-xy
d. Font ch
V d 1:
<html>
<head>
<style type="text/css">
h1 {font-family: Tahoma; font-size: 150%}
h2 {font-family: Tahoma; font-size: 120%}
h3 {font-family: Tahoma; font-size: 12}
p {font-family: Tahoma;}
p.sansserif {font-family: sans-serif}
</style>
</head>
<body>
<h1>y l header 1</h1>
<h2>cn y l header 2</h2>
<h3>v y l header 3</h3>
<p>y l on vn bn</p>
<p class="sansserif">
y l on vn bn c font sansserif</p>
</body>
</html>
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 173/174

V d 2:
<html>
<head>
<style type="text/css">
p{text-align:justify; font-family: Tahoma;
font-size: 12px; border-bottom: 2px solid #ff0000}
</style>
</head>
<body>
<p> bit c nhng Web Service c cung cp min ph trn mng, cc
bn c th dng google thc hin tm kim. y, chng ti gii
thiu n cc bn trang: http://www.webservicex.net cung cp kh nhiu
cc Web Service hu ch..</p>
</body>
</html>

e. Qun l mu hin th ca lin kt: Hyperlink
<html>
<head>
<style type="text/css">
a {text-decoration:none; color: #0000FF}
a:visited {text-decoration:none; color: #0000A0}
a:hover {text-decoration:none; color: #FF00FF}
a:active {text-decoration:none; color: #FF0000}
</style>
</head>
<body>
Ti liu hng dn ging dy

Hc phn 3 - Lp trnh ng dng web vi ASP.NET Trang 174/174
<p><b><a href="http://www.csc.hcmuns.edu.vn/Qlgv" target="_blank">Trang
Qun l gio vin - TTTH</a> </b></p>
</body>
</html>

You might also like