Lp trình và Thit k Web 2
Bà
i
5
Bà
i
5
CuCu
hìnhhình
GiaoGiao
dindin
WebsiteWebsite
CuCu
hìnhhình
GiaoGiao
dindin
WebsiteWebsite
Ths
Trn
Th
Bích
Hnh
Ths
.
Trn
Th
Bích
Hnh
Khoa CNTT Khoa CNTT –– H.KHTNH.KHTN
© 2009 Khoa Công ngh thông tin
LptrìnhvàThitk Web 2 – Bài 5: CuhìnhGiaodin Website
NidNid
Ni
d
ung
Ni
d
ung
Master Page
Master
Page
S dng CSS vi ASP.NET Server Control
Skin và Theme
Site Navigation
© 2009 Khoa CNTT - HKHTN
2
Lp trình và Thitk Web 2 – Bài 5: CuhìnhGiaodin Website
NidNid
Ni
d
ung
Ni
d
ung
Master Page
Master
Page
S dng CSS vi ASP.NET Server Control
Skin và Theme
Site Navigation
© 2009 Khoa CNTT - HKHTN
3
LptrìnhvàThitk Web 2 – Bài 5: CuhìnhGiaodin Website
MtPMtP
M
as
t
er
P
age
M
as
t
er
P
age
Master Page
cho phép đnh ngha layout template nht
Master
Page
cho
phép
đnh
ngha
layout
template
nht
quán cho toàn b WebForm trong site
Content Page
là các
WebForm
k tha Master Page và b
Content
Page
là
các
WebForm
k
tha
Master
Page
và
b
sung thêm ni dung
© 2009 Khoa CNTT - HKHTN
Master Page ( .master )
Content Page ( .aspx )
4
Lp trình và Thitk Web 2 – Bài 5: CuhìnhGiaodin Website
MtPMtP
M
as
t
er
P
age
M
as
t
er
P
age
Master page s đnh nghacác
PlaceHolderControl
Master
page
s
đnh
ngha
các
PlaceHolderControl
Content page s chèn ni dung tng ng vào các
PlaceHolderControl
trong master page
PlaceHolderControl
trong
master
page
.
© 2009 Khoa CNTT - HKHTN
5
LptrìnhvàThitk Web 2 – Bài 5: CuhìnhGiaodin Website
TT
tt
//
ThTh
điđi
MtPMtP
tt
CttPCttP
T
ruy
T
ruy xu
t
xu
t
//
Th
ay
Th
ay
điđi
M
as
t
er
P
age
M
as
t
er
P
age
tt
C
on
t
en
t
P
age
C
on
t
en
t
P
age
Cách
1
:
S
dng
phng
thc
FindControl
t
đi
tng
Cách
1
:
S
dng
phng
thc
FindControl
t
đi
tng
Master
• Ví d
– Trong Master Page có 1 Hyperlink vi
ID=
“controlInMasterPage“.
C
CS
–
Trong
C
ontent Page.aspx.
CS
:
HyperLink
ad
=
(
HyperLink)
Master.FindControl
(
“
controlInMasterPage
"
);
HyperLink
ad (
HyperLink)
Master.FindControl
(
controlInMasterPage
);
if (ad != null)
{
ad.ImageUrl = "images/Logo.gif";
ad.NavigateUrl = "";
© 2009 Khoa CNTT - HKHTN
}
6
Lp trình và Thitk Web 2 – Bài 5: CuhìnhGiaodin Website
TT
tt
//
ThTh
điđi
MtPMtP
tt
CttPCttP
T
ruy
T
ruy xu
t
xu
t
//
Th
ay
Th
ay
điđi
M
as
t
er
P
age
M
as
t
er
P
age
tt
C
on
t
en
t
P
age
C
on
t
en
t
P
age
Cách
2
:
Cách
2
:
– Master Page: óng gói d liu thành các thuc tính có th
tru
y
xut
(
Pro
p
erties
)
y
(p )
public string AdImageUrl
{
get {
return
controlInMasterPage.ImageUrl;
}
}
set {
c
ontrolInMasterPa
g
e.ImageUrl = value;
g
}
}
© 2009 Khoa CNTT - HKHTN
7
LptrìnhvàThitk Web 2 – Bài 5: CuhìnhGiaodin Website
TT
tt
//
ThTh
điđi
MtPMtP
tt
CttPCttP
T
ruy
T
ruy xu
t
xu
t
//
Th
ay
Th
ay
điđi
M
as
t
er
P
age
M
as
t
er
P
age
tt
C
on
t
en
t
P
age
C
on
t
en
t
P
age
Cách
2(
tt
):
Cách
2
(
tt
):
– Content Page:
•
Ch
đnh
kiu
c
th
ca
Master Page
trong
Content page
aspx
Ch
đnh
kiu
c
th
ca
Master
Page
trong
Content
page
.
aspx
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" …%>
/
<%@ MasterType
V
irtualPath="~
/
MasterPage.master" %> hoc
<%@ MasterType TypeName=“MyMasterPageClassName" %>
• Truy xut/Thay đi Master Page trong Content page.aspx.CS
Master
AdImageUrl
=
"images/Logo gif";
Master
.
AdImageUrl
=
"images/Logo
.
gif";
© 2009 Khoa CNTT - HKHTN
8
Lp trình và Thitk Web 2 – Bài 5: CuhìnhGiaodin Website
LL
tì htì h
thth
điđi
MtPMtP
L
p
L
p
t
r
ì
n
ht
r
ì
n
h
th
ay
th
ay
điđi
M
as
t
er
P
age
M
as
t
er
P
age
Gán
MasterPage
mi
cho
Page.MasterPageFile
trong
Gán
MasterPage
mi
cho
Page.MasterPageFile
trong
hàm x lý s kin Page_PreInit
protected void Page_PreInit(object sender, EventArgs e)
{
Page.MasterPageFile = "~/AnotherMasterPage.master";
}
© 2009 Khoa CNTT - HKHTN
9
LptrìnhvàThitk Web 2 – Bài 5: CuhìnhGiaodin Website
CC
X
X
lýlý ss kinkin phátphát sinhsinh tt Master Master trongtrong
C
ontent Page
C
ontent Page
óng
gói
control
phát
sinh
s
kin
trong
MasterPage
óng
gói
control
phát
sinh
s
kin
trong
MasterPage
// MasterPage.aspx.cs
public RadioButtonList MyRadioList {
get {
return RadioButtonList1;
}
}
Bts kinx lý trong ContentPage
// ContentPage.aspx.cs
protected void Page_Load(object sender, EventArgs e) {
Master.MyRadioList.SelectedIndexChanged +=
new System.EventHandler(
ContentList_Changed);
}
protected void ContentList_Changed(object sender, EventArgs e) {
RadioButtonList myRadioList = (RadioButtonList)sender;
Response.Write(myRadioList.SelectedValue);
© 2009 Khoa CNTT - HKHTN
10
}
Lp trình và Thitk Web 2 – Bài 5: CuhìnhGiaodin Website
NidNid
Ni
d
ung
Ni
d
ung
Master Page
Master
Page
S dng CSS vi ASP.NET Server Control
Skin và Theme
Site Navigation
© 2009 Khoa CNTT - HKHTN
11
LptrìnhvàThitk Web 2 – Bài 5: CuhìnhGiaodin Website
SS
dd
CSSCSS
ii
ASP NET S C t lASP NET S C t l
SS
d
ng
d
ng
CSS
CSS
v
i
v
i
ASP
.
NET
S
erver
C
on
t
ro
lASP
.
NET
S
erver
C
on
t
ro
l
Cách
1:
Thay
đi
Properties
ca
các
asp.net server
Cách
1:
Thay
đi
Properties
ca
các
asp.net
server
control lúc thitk (
inline css)
• Ví d:
<span id="LabelMsg"
style="display:inline-block;
lRd
co
l
or:
R
e
d
;
background-color:#FFFF80;
border-color:Lime;
border-st
y
le:Dashed
;
y
;
font-weight:bold;
font-style:italic;
text-decoration:underline;">
Hll W ld
© 2009 Khoa CNTT - HKHTN
H
e
ll
o
W
or
ld
</span>
12
Lp trình và Thitk Web 2 – Bài 5: CuhìnhGiaodin Website
SS
dd
CSSCSS
ii
ASP NET S C t lASP NET S C t l
SS
d
ng
d
ng
CSS
CSS
v
i
v
i
ASP
.
NET
S
erver
C
on
t
ro
lASP
.
NET
S
erver
C
on
t
ro
l
Cách 2: Thay đini dung thuc tính Style (inline css)
ca đitng server control tng ng
• Ví d: Code behind:
LabelMsg.Style[“font-style"] = "italic“ ;
LabelMsg.Style[“text-decoration"] = “underline“ ;
LabelMsg.Style
[
“
color
"
]
= “
Red
“
;
LabelMsg.Style
[
color
]
Red
;
<span id="LabelMsg"
s
tyle="font-style:italic;
text-decoration:underline;
color:Red;“>
Hll W ld
© 2009 Khoa CNTT - HKHTN
H
e
ll
o
W
or
ld
</span>
13
LptrìnhvàThitk Web 2 – Bài 5: CuhìnhGiaodin Website
SS
dd
CSSCSS
ii
ASP NET S C t lASP NET S C t l
SS
d
ng
d
ng
CSS
CSS
v
i
v
i
ASP
.
NET
S
erver
C
on
t
ro
lASP
.
NET
S
erver
C
on
t
ro
l
Cách
3:
Thit
lp
giá
tr
thuc
tính
CssClass
ca
Cách
3:
Thit
lp
giá
tr
thuc
tính
CssClass
ca
đitng control (embeded, external css)
•
Ví
d
:
.
myStyle
{
Ví
d
:
.
myStyle
{
font-style: bold;
text-decoration:
line-through;
l
}
co
l
or: green;
}
• Code behind:
LabelMsg.Style.Clear
();
LabelMsg.Style.Clear
(
);
LabelMsg.CssClass = “myStyle”;
© 2009 Khoa CNTT - HKHTN
<span id="Label1" class="myStyle">Hello World</span>
14
Lp trình và Thitk Web 2 – Bài 5: CuhìnhGiaodin Website
NidNid
Ni
d
ung
Ni
d
ung
Master Page
Master
Page
S dng CSS vi ASP.NET Server Control
Skin và Theme
Site Navigation
© 2009 Khoa CNTT - HKHTN
15
LptrìnhvàThitk Web 2 – Bài 5: CuhìnhGiaodin Website
Th & SkiTh & Ski
Th
eme
&
Ski
n
Th
eme
&
Ski
n
© 2009 Khoa CNTT - HKHTN
16
Lp trình và Thitk Web 2 – Bài 5: CuhìnhGiaodin Website
ThTh
Th
eme
Th
eme
1 Theme
có
th
xem
là
1
giao
din
ca
trang
web
1
Theme
có
th
xem
là
1
giao
din
ca
trang
web
Ttc theme phi đt trong th mc App_Themes
M
i theme đnh ngha nhi
u skin file, css file, hình nh,
© 2009 Khoa CNTT - HKHTN
17
LptrìnhvàThitk Web 2 – Bài 5: CuhìnhGiaodin Website
Ski FilSki Fil
Ski
n
Fil
e
Ski
n
Fil
e
Skin file đ
nh d
n
g
hinth
các as
p
.net server control
g
p
– Ví d: nh nghastyle ápdng đivimi Label và TextBox trong trang
web
<
a
sp:Label runat="server"
ForeColor="Blue" Font-Size="10pt“ Font-Name="Verdana" />
<
asp
:
TextBox
runat
="server"
<
asp
:
TextBox
runat
="server"
BackColor="#FFFFC0" ForeColor="Green“ />
Lu
ý
: Skin file ch cha các đ
nh n
g
hast
y
le cho control
© 2009 Khoa CNTT - HKHTN
ý
g
y
Và KHÔNG CÓ thuctínhID
18
Lp trình và Thitk Web 2 – Bài 5: CuhìnhGiaodin Website
Ski IDSki ID
Ski
n
IDSki
n
ID
SkinID
dùng
thit
lp
nhiu
đnh
dng
khác
nhau
SkinID
dùng
thit
lp
nhiu
đnh
dng
khác
nhau
– Ví d:
•
Skin File:
Skin
File:
<asp:TextBox runat="server"
BackColor="#FF0000" ForeColor="White" SkinID="skin1" />
• S dng trong WebForm
<
asp
:
TextBox
ID
=
"
TextBoxUsername
"
runat
=
"
server
“
<
asp
:
TextBox
ID
= TextBoxUsername
runat
= server
SkinID="skin1" />
© 2009 Khoa CNTT - HKHTN
19
LptrìnhvàThitk Web 2 – Bài 5: CuhìnhGiaodin Website
SS
dd
ThTh
SS
d
ng
d
ng
Th
eme
Th
eme
S
dng
Theme
trong
1Webform
S
dng
Theme
trong
1
Web
form
– <%@ Page Theme="Theme1“
S dng Theme trong mi Web form
Trong file web.config, b sung:
<system.web>
…
<pages theme=“Theme1" />
…
</system.web>
© 2009 Khoa CNTT - HKHTN
20
Lp trình và Thitk Web 2 – Bài 5: CuhìnhGiaodin Website
LL
tì htì h
ThTh
điđi
ThTh
L
p
L
p
t
r
ì
n
ht
r
ì
n
h
Th
ay
Th
ay
điđi
Th
eme
Th
eme
Gán
theme
mi
cho
Page.Theme
trong
hàm
x
lý
s
kin
Gán
theme
mi
cho
Page.Theme
trong
hàm
x
lý
s
kin
Page_PreInit
protected void Page_PreInit(object sender, EventArgs e)
{
{
Page.Theme = “Theme2”;
}
© 2009 Khoa CNTT - HKHTN
21
LptrìnhvàThitk Web 2 – Bài 5: CuhìnhGiaodin Website
NidNid
Ni
d
ung
Ni
d
ung
Master Page
Master
Page
S dng CSS vi ASP.NET Server Control
Skin và Theme
Site Navigation
© 2009 Khoa CNTT - HKHTN
22
Lp trình và Thitk Web 2 – Bài 5: CuhìnhGiaodin Website
Sit N i tiSit N i ti
Sit
e
N
av
i
ga
ti
on
Sit
e
N
av
i
ga
ti
on
XML Site Map
XML
Site
Map
SiteMapDataSource
SiteMapPath Control
Menu Control
TreeView Control
© 2009 Khoa CNTT - HKHTN
23
LptrìnhvàThitk Web 2 – Bài 5: CuhìnhGiaodin Website
CC
tútú
bitbit
C
u
C
u
t
r
ú
c
t
r
ú
cwe
b
s
it
ewe
b
s
it
e
© 2009 Khoa CNTT - HKHTN
24
Lp trình và Thitk Web 2 – Bài 5: CuhìnhGiaodin Website
XML Sit MXML Sit M
XML
Sit
e
M
ap
XML
Sit
e
M
ap
nh
ngha
cu
trúc
website
trong
file
Web.sitemap
nh
ngha
cu
trúc
website
trong
file
Web.sitemap
<?xml version="1.0" encoding="utf-8" ?>
<siteMap
xmlns=" /><siteMapNode url=“Home.aspx" title="Home" description="HomePage"
>
<siteMapNode url=“Product.aspx" title=“Product" >
<siteMapNode url
=
“Manufactory.aspx" title=“Manufactory" /
>
<siteMapNode url=“Category.aspx" title=“Category“ >
…
/
id
<
/
s
i
teMapNo
d
e>
</siteMapNode>
<siteMapNode url=“Search.aspx" title=“Search" />
<
it M N d
l
“H l " titl “H l " >
<
s
it
e
M
ap
N
o
d
eur
l
=“H
e
l
p.aspx
"
titl
e=
“H
e
l
p
"
>
…
</siteMapNode>
</
siteMapNode
>
© 2009 Khoa CNTT - HKHTN
25
</
siteMapNode
>
</siteMap>
LptrìnhvàThitk Web 2 – Bài 5: CuhìnhGiaodin Website
SS
dd
XML Sit MXML Sit M
SS
d
ng
d
ng
XML
Sit
e
M
ap
XML
Sit
e
M
ap
To
SiteMapDataSource
To
SiteMapDataSource
<asp:SiteMapDataSource ID="SiteSource" runat="server" />
Web.Sitemap
© 2009 Khoa CNTT - HKHTN
26
Lp trình và Thitk Web 2 – Bài 5: CuhìnhGiaodin Website
CC
hì hhì h
Sit MSit M
FilFil
C
u
C
u
hì
n
hhì
n
h
Sit
e
M
ap
Sit
e
M
ap
Fil
e
Fil
e
Cu
hình
thay
đi
file sitemap
trong
Web.Config
Cu
hình
thay
đi
file
sitemap
trong
Web.Config
<configuration>
<system.web>
<siteMap defaultProvider=“XmlSiteMapProvider" enabled="true">
<providers>
<add name=“
SpecialSiteMapProvider"
type=
"
System Web XmlSiteMapProvider
"
type=
System
.
Web
.
XmlSiteMapProvider
siteMapFile="~/Special.Sitemap"/>
<add name=“
XmlSiteMapProvider"
type="System.Web.XmlSiteMapProvider"
siteMapFile="~/web.Sitemap"/>
</providers>
</siteMap>
</system web>
</system
.
web>
</configuration>
© 2009 Khoa CNTT - HKHTN
27
LptrìnhvàThitk Web 2 – Bài 5: CuhìnhGiaodin Website
Sit M P thSit M P th
CtlCtl
Sit
e
M
ap
P
a
thSit
e
M
ap
P
a
th
C
on
t
ro
lC
on
t
ro
l
Hin
th
đng
dn
truy
cp
t
root node (
trang
ch
)
đn
Hin
th
đng
dn
truy
cp
t
root
node
(
trang
ch
)
đn
node hinti (breadcrumb)
Mi
node
phân
cách
nhau
bi
PathSeperator
Mi
node
phân
cách
nhau
bi
PathSeperator
© 2009 Khoa CNTT - HKHTN
28
Lp trình và Thitk Web 2 – Bài 5: CuhìnhGiaodin Website
MCtlMCtl
M
enu
C
on
t
ro
lM
enu
C
on
t
ro
l
Hin
th
cu
trúc
website
di
dng
Menu
Hin
th
cu
trúc
website
di
dng
Menu
<asp:Menu ID="MenuMain" runat="server“ DataSourceID="SiteSource“>
</asp:Menu>
Orientation
=“
Vertical
"
Orientation Vertical
StaticDisplayLevels="2"
StaticSubMenuIndent="0px"
Orientation="Horizontal"
StaticDisplayLevels="2"
St ti S bM I d t
"
10
© 2009 Khoa CNTT - HKHTN
29
St
a
ti
c
S
u
bM
enu
I
n
d
en
t
="
10
px
LptrìnhvàThitk Web 2 – Bài 5: CuhìnhGiaodin Website
TViTVi
CtlCtl
T
ree
Vi
ew
T
ree
Vi
ew
C
on
t
ro
lC
on
t
ro
l
Hin
th
cu
trúc
website
di
dng
TreeView
Hin
th
cu
trúc
website
di
dng
TreeView
<asp:TreeView ID="TreeViewMain" runat="server" DataSourceID="SiteSource”>
</asp:TreeView>
ImageSet=“Arrows" ImageSet="WindowsHelp"ImageSet=“BulletedList6"
© 2009 Khoa CNTT - HKHTN
30
Lp trình và Thitk Web 2 – Bài 5: CuhìnhGiaodin Website
TT
ktkt
T
ng
T
ng
ktkt
Master Page
Master
Page
– Master Page, Content Page, PlaceHolderControl
Thay
đi
/
Truy
xut
Master Page
t
Content Page
–
Thay
đi
/
Truy
xut
Master
Page
t
Content
Page
S dng CSS vi ASP.NET Server Control
–
Inline CSS
– Embedded, external CSS
© 2009 Khoa CNTT - HKHTN
31
LptrìnhvàThitk Web 2 – Bài 5: CuhìnhGiaodin Website
TT
ktkt
((
tttt
))
T
ng
T
ng
ktkt
((
tttt
))
Skin
và
Theme
Skin
và
Theme
– Theme
Skin File
SkinID
–
Skin
File
,
SkinID
Site Navigation
–
XML Site Ma
p
p
– SiteMapDataSource
–
SiteMapPath
Control
SiteMapPath
Control
– Menu Control
Tree View Control
© 2009 Khoa CNTT - HKHTN
–
Tree
View
Control
32