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

TAI LIEU HNG DAN GIANG DAY

CHNG TRNH KY THUAT VIEN


Hoc phan 3
LAP TRNH NG DUNG WEB
VI ASP.NET

M ti liu: DT_NCM_LT_TLGD_ASP.NET
Phin bn 1.0 Thng 06/05
Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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 1. Tng quan v lp trnh ng dng 1.1, 1.2, 1.3, 1.4,
dng web v cc m hnh ng dng. web
1.6, 1.7
Ci t v cu hnh Web Server. 2. Gii thiu v Asp.Net
Bi lm thm:
3. Web Server
Tm hiu mi trng pht trin ng
4. To ng dng web u tin 1.5
dng web vi Visual Studio.Net.

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


Ti liu hng dn ging dy

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,

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


Ti liu hng dn ging dy

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.

Ni dung nh dng Kt qu hin th

<Html>
Trang ch
<Head>
Windows </Head>
Server <Body>
System
Microsoft </Body>
</Html>

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

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


Ti liu hng dn ging dy

I.2. Tm hiu cc m hnh ng dng


I.2.1. M hnh ng dng 2 lp

Yu cu

Tr li

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.

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


Ti liu hng dn ging dy

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.

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


Ti liu hng dn ging dy

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


VB C++ C# J#

CCommon Language Specification

ASP .NET Windows


Web Forms - Web Services
Mobile Internet Toolkit
Forms

ADO .NET and XML

Base Class Library

Common Language Runtime

Operating System

Kin trc .Net Framework

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


Ti liu hng dn ging dy

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!

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


Ti liu hng dn ging dy

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.

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


Ti liu hng dn ging dy

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.
System.Web System.Windows.Forms

Services UI Design ComponentModel


Description HtmlControls
Discovery WebControls
Protocols System.Drawing

Caching Security Drawing2D Printing


Configuration SessionState DImaging PText

System.Data System.Xml

OleDb SqlClient XSLT Serialization


Common SQLTypes XPath

System

Collections IO Security Runtime


Configuration Net ServiceProcess InteropServices

Diagnostics Reflection Text Remoting

Globalization Resources Threading Serialization

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).

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


Ti liu hng dn ging dy

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.

ASP.NET ASPX
Engine

Response

Html Page
Page DLL

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


Ti liu hng dn ging dy

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:

Yu cu Server tm X l tp
kim tp tin ASPX
tin

Bin dch li
C
Bin dch Thay i?

Lu tr li
di dng Khng
DLL

Hi p Thi hnh
trang ASPX

Qu trnh x l tp tin ASPX

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


Ti liu hng dn ging dy

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.

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


Ti liu hng dn ging dy

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.

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


Ti liu hng dn ging dy

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:

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy


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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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.

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy


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.

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


Ti liu hng dn ging dy

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 1. HTML Control 2.1, 2.2, 2.3, 2.4,
HTML & ASP.Net Web Control HTML Control 2.5, 2.6, 2.7, 2.8,
Lm vic vi i tng ViewState. HTML Server Control 2.9, 2.10
2. ASP.Net Web Control
Bi lm thm:
Asp.Net Page
2.11, 2.12, 2.13
iu khin c bn
iu khin kim tra d liu
Mt s iu khin khc
3. i tng ViewState

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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
iu khin HTML File Field: fileTap_tin

lblThong_bao

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

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


Ti liu hng dn ging dy

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

Page_Init()

Page_Load()

Page_PreRender()

Page_Unload()

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

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


Ti liu hng dn ging dy

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.

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


Ti liu hng dn ging dy

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"

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


Ti liu hng dn ging dy

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.

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


Ti liu hng dn ging dy

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.

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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.

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


Ti liu hng dn ging dy

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.

D liu nhp Thng


bo li

Khng
Hp l?

Client C
Server Khng
Hp l?

Cc x l

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

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


Ti liu hng dn ging dy

rfvNhap_lai

Khi khng c li, iu khin


Validation vn chim dng
v tr trn trang web

La chn hnh thc hin th

rfvNhap_lai.Display = Dynamic

rfvNhap_lai

Khi khng c li, iu khin


Validation khng chim
dng v tr trn trang web.

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.

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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.

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


Ti liu hng dn ging dy

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.

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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>

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


Ti liu hng dn ging dy

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

tblBang

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

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


Ti liu hng dn ging dy

'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>

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


Ti liu hng dn ging dy

<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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

Bc 4. Thi hnh ng dng

F5

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

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


Ti liu hng dn ging dy

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")

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


Ti liu hng dn ging dy

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.

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


Ti liu hng dn ging dy

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, 1. iu khin DataGrid 3.1, 3.2, 3.3, 3.4,
DataGrid v Repeater hin th d 2. iu khin DataList
3.6, 3.7, 3.8, 3.10
liu.
3. iu khin Repeater Bi lm thm:
Lin kt d liu vi cc kiu tp hp:
ArrayList, SortedList, HashTable, 3.5, 3.9, 3.11

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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.

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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.

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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.

chkPhai

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.

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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.

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


Ti liu hng dn ging dy

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"

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


Ti liu hng dn ging dy

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.

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

'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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

RepeatColumns: Qui nh s ct hin th ca DataList

L'Enqute Corse Unspeakable Bottle Rocket


t mua t mua t mua

Ripper Enduring Love The Good Thief


t mua t mua 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.

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


Ti liu hng dn ging dy

V d: Hin th thng tin sch vi DataList

LinkButton
Label

HyperLink

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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.

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

DataList ch ang hiu chnh

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


Ti liu hng dn ging dy

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>

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


Ti liu hng dn ging dy

<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>

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


Ti liu hng dn ging dy

</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

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


Ti liu hng dn ging dy

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")

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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.

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


Ti liu hng dn ging dy

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 1. Thit k tng quan 4.1, 4.2, 4.3, 4.4
lp trnh hng i tng v thao tc 2. Cu trc chi tit
4.5
d liu vi ADO.NET, xy dng lp x
Khai bo bin thnh vin Bi lm thm:
l d liu.
Danh sch cc thuc tnh
4.6, 4.7, 4.8, 4.9
Nhm hm khi to i tng
Nhm hm cung cp thng tin
Nhm hm x l tnh ton
3. S dng lp i tng

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


Ti liu hng dn ging dy

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.

Ngi

X l th hin

X l nghip v

X l lu tr

D liu

M hnh x l ca ng dng

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


Ti liu hng dn ging dy

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.

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

'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

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


Ti liu hng dn ging dy

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).

XL_BANG

XL_XXX

S lp XL_XXX
Trong :

Lp XL_BANG: c xy dng phn trn.

K hiu XXX: Tn cc bng tng ng trong CSDL.

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


Ti liu hng dn ging dy

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
'

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

Kt qu hin th: (10 sch mi nht)

Mn hnh thng tin sch

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


Ti liu hng dn ging dy

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:

LinkButton

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.

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


Ti liu hng dn ging dy

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 1. To mi i tng th hin 5.1, 5.2, 5.3, 5.4,
dng (Web user control) 2. S dng i tng th hin 5.5, 5.6, 5.10, 5.11
3. To phng thc cho i tng 5.12
th hin
4. To s kin cho i tng th hin Bi lm thm:
5. Phi hp hot ng cc i tng 5.7, 5.8, 5.9, 5.13,
th hin
5.14, 5.15

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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.

LinkButton

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

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


Ti liu hng dn ging dy

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:

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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.

Pht ra s kin
Chon_sach

Pht ra s kin
Chon_chu_de

Pht ra s kin
Chon_nha_xuat_ban

iu khin pht ra cc s kin tng ng

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


Ti liu hng dn ging dy

IV.1. Thit k
Thit lp thuc tnh CommandName cho cc LinkButton: Tn sch, Ch v Nh xut bn.

LinkButton

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")

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


Ti liu hng dn ging dy

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)

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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 1. i tng Response 6.1, 6.2, 6.3, 6.4


dng thc hin cc chc nng iu 2. i tng Request Bi lm thm:
khin lung chng trnh, qun l
3. i tng Application 6.5, 6.6
ngi dng hay chia s d liu gia
4. i tng Session
cc trang web.
5. i tng Server
Tm hiu cc tp tin qun l v cu
hnh ng dng. 6. i tng Cookies
7. Tp tin qun l v cu hnh ng
T chc v xy dng ng dng. dng
8. T chc & xy dng ng dng

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


Ti liu hng dn ging dy

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

Http Request Resource

Http Response
Web Client Web Server
(Browser)

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.")

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


Ti liu hng dn ging dy

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.

LinkButton
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

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


Ti liu hng dn ging dy

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")

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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.

Web Server

Web Site

Application

Session

Session Session

Quan h gia Session v Application

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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.

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


Ti liu hng dn ging dy

Cookies

Request

Client Web Server

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.

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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>

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


Ti liu hng dn ging dy

</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.

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


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

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.

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


Ti liu hng dn ging dy

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")

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


Ti liu hng dn ging dy

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.

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


Ti liu hng dn ging dy

VI.1.2. T chc lu tr

*.css

*.mdb
*.bmp, *.gif, *.png
*.ascx

*.aspx *.vb

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.

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


Ti liu hng dn ging dy

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 Ni dung hin th Cc thng tin lin


nng chnh ca quan:
ng dng
Qung co
Cc thng tin lin
Tin nng
quan:

Thng k s
ln truy cp
ng nhp
Qung co

Cc ni dung, bi vit lin quan

w1 w2
w

h 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.

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


Ti liu hng dn ging dy

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 1. Tm hiu v Web Services 7.1, 7.2


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

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


Ti liu hng dn ging dy

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.

COM Client COM Server

Firewall

Nu khng cu hnh li Firewall, DCOM khng c kh nng vt qua Firewall

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


Ti liu hng dn ging dy

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.

Web
SOAP Request
Client

Windows
Client
SOAP Response

Other
Phatforms Web Server

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.

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


Ti liu hng dn ging dy

Khch sn
Nh hng

Cng ty du lch

Internet

ng st Vit
Nam

Khch du lch
Vit Nam Airline

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.

Web Service Web Service

Web Service Web Service

.Net My Service

Client

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

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


Ti liu hng dn ging dy

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.

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


Ti liu hng dn ging dy

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.

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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")

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


Ti liu hng dn ging dy

'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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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:

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


Ti liu hng dn ging dy

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:

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


Ti liu hng dn ging dy

Bi 8
PH LC
Tm tt

Mc tiu Cc mc chnh Bi tp

Gii thiu v cc ph lc nh km ti 1. C s d liu dng trong ng dng


liu. 2. Gii thiu v cc tag HTML
3. Cascading Style Sheets - CSS
4. Gii thiu lp x l d liu

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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 01/06/2005
tuyn VN s thi u th no Cup Honda?

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

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


Ti liu hng dn ging dy

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>

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


Ti liu hng dn ging dy

<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.

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


Ti liu hng dn ging dy

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"

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


Ti liu hng dn ging dy

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 , , , {,

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>

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


Ti liu hng dn ging dy

<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, "disk" : z
"a" : a, b, c, "circle" : {
"I" : I, II, III, "square" :
"i" : i, ii, iii,
"1" : 1, 2, 3, (mc nh)

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!

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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">

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


Ti liu hng dn ging dy

<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

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


Ti liu hng dn ging dy

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>.

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


Ti liu hng dn ging dy

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

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


Ti liu hng dn ging dy

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.

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


Ti liu hng dn ging dy

</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 */

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


Ti liu hng dn ging dy

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">

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


Ti liu hng dn ging dy

<!--
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)}

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


Ti liu hng dn ging dy

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>

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


Ti liu hng dn ging dy

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>

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


Ti liu hng dn ging dy

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>

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


Ti liu hng dn ging dy

<p><b><a href="http://www.csc.hcmuns.edu.vn/Qlgv" target="_blank">Trang


Qun l gio vin - TTTH</a> </b></p>
</body>
</html>

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

You might also like