Các trang trong một ứng
dụng, thường có các thành
phần giống nhau như:
Barner quảng cáo ở đầu trang
Menu ở phía bên trái trang
Phần Footer của trang Web
ASP.NET cung cấp một
phương pháp để tạo các
trang có các thành phần
giống nhau mà không cần
viết các đoạn mã giống nhau
trên từng trang Web đó là sử
dụng trang Master
49 trang |
Chia sẻ: lylyngoc | Lượt xem: 1726 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Bài 4: Template & điều hướng trang Web, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Bài 4:
Template & điều hướng trang Web
Các nội dung đã học trong bài trước
Kiểm tra tính hợp lệ của dữ liệu
Quản lý trạng thái
Hệ thống bài cũ
Template & Điều hướng trang Web 2
Mục tiêu bài học
1. Trang Master
2. Điều hướng trang Web
Template & Điều hướng trang Web 3
3. Sử dụng Theme
Kiểm tra tính hợp lệ của dữ liệu & Quản lý trạng thái 4
Các trang trong một ứng
dụng, thường có các thành
phần giống nhau như:
Barner quảng cáo ở đầu trang
Menu ở phía bên trái trang
Phần Footer của trang Web
ASP.NET cung cấp một
phương pháp để tạo các
trang có các thành phần
giống nhau mà không cần
viết các đoạn mã giống nhau
trên từng trang Web đó là sử
dụng trang Master
Trang Master
Template & Điều hướng trang Web 5
Hai trang khác nhau trong cùng một ứng dụng chỉ
có phần nội dung hiển thị ở giữa khác nhau, còn
các thành phần khác giống nhau
Trang master cung cấp các
thành phần giống nhau cho các
trang trong một ứng dụng Web
Trang nội dung: chứa phần nội
dung hiển thị trên trang master.
Vùng chứa nội dung: Vùng
không gian hiển thị trang nội
dung
Kết hợp giữa trang master và
trang nội dung tạo nên giao diện
của từng trang đơn lẻ trong ứng
dụng Web
Trang Master/Trang nội dung
Template & Điều hướng trang Web 6
Ví dụ: Mã nguồn của trang master được tạo bởi Visual
Studio
Trang Master
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs"
Inherits="MasterPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"">
Untitled Page
<asp:ContentPlaceHolder id="ContentPlaceHolder1"
runat="server">
Template & Điều hướng trang Web 7
Trong ASP.NET trang master có định dạng .master
Một trang master luôn bắt đầu bằng chỉ dẫn trang
Master
<%@ Master Language="C#" AutoEventWireup="true"
CodeFile="MasterPage.master.cs"
Inherits="MasterPage" %>
Đoạn mã phía sau chỉ dẫn Master giống với các trang
aspx thông thường khác cũng gồm các phần tử ,
,
Trang Master
Template & Điều hướng trang Web 8
Trang master luôn phải chứa một điều khiển
ContentPlaceHolder chỉ định vùng hiển thị trang nội
dung nằm trong thẻ Form
Lập trình viên có thể thêm mã html, asp, các điều khiển
lên trang Master.
Tất cả các phần tử HTML hoặc asp được thêm vào bên
ngoài vùng chứa nội dung sẽ hiển thị trên tất cả các
trang
Trang Master
Template & Điều hướng trang Web 9
Trang Master cũng chứa một File Code-behind chứa các
mã xử lý sự kiện.
Các sự kiện tương ứng của trang master được kích hoạt
sau trang nội dung
Ví dụ: Sự kiện Load của trang nội dung xảy ra trước sự
kiện Load của trang master
Sự kiện của các điều khiển trên trang nội dung sẽ được xử
lý trước trang master
File Code-behind của trang Master
Template & Điều hướng trang Web 10
File code-behind của trang master khá giống với File
code-behind của Web Form thông thường
File Code-behind của trang Master
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class MasterPage : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
Template & Điều hướng trang Web 11
Dẫn xuất từ lớp
MasterPage
Trang nội dung có định dạng là .aspx giống với một Web
Form.
Tuy nhiên, trang nội dung không chứa các phần tử
, , , Form
Trang nội dung bắt đầu bằng chỉ dẫn Page tương tự
WebForm nhưng thêm thuộc tính MasterPageFile chỉ
định trang master mà trang sử dụng
Trang nội dung chứa phần tử Content chỉ định ID của
điều khiển ContentPlaceHolder trên trang master
Trang nội dung
Template & Điều hướng trang Web 12
Mã aspx của một trang nội dung
Trang nội dung
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master"
AutoEventWireup="true" CodeFile="Order.aspx.cs" Inherits="Order" Title="Untitled
Page" %>
<asp:Content ID="Content3" ContentPlaceHolderID="head"
Runat="Server">
<asp:Content ID="Content4" ContentPlaceHolderID=" ContentPlaceHolder1 "
Runat="Server">
Template & Điều hướng trang Web 13
Các bước tạo ứng dụng ASP.NET sử dụng trang Master
Tạo Web Site
Thêm một trang master vào WebSite. Trình bày bố cục (sử
dụng bảng hoặc CSS) và thêm các phần tử vào trang
master
Thêm các trang nội dung cho WebSite.
Viết các mã xử lý sự kiện cho trang master và các trang
nội dung
Hướng dẫn sử dụng trang Master
Template & Điều hướng trang Web 14
Tương tự như cách thêm một Web Form. Sử dụng hộp
thoại Add New Item
Khác: Chọn Template Master Page
Thêm một trang master
Template & Điều hướng trang Web 15
Tương tự như Web Form. Lập trình viên có thể sử dụng
màn hình thiết kế để thêm các phần tử HTML, điều
khiển asp, ContentPlaceHolder…
Sửa nội dung trang Master
Template & Điều hướng trang Web 16
Tương tự như Web Form, sử dụng cửa sổ Add New Item
để thêm trang nội dung
Khác: Chọn check box Select master page
Thêm trang nội dung
Template & Điều hướng trang Web 17
Nội dung demo
1. Thêm một trang master
vào Website
2. Trình bày bố cục cho
trang Master sử dụng bảng.
Bố cục trang gồm:
Một banner
Một sidebar bên trái
Một vùng chứa nội dung
Footer
Demo
Sử dụng trang Master
Side bar chứa
menu
Vùng chứa
nội dung
Banner
Template & Điều hướng trang Web 18
Footer
3. Thêm một trang nội dung
cho WebSite
4. Thêm các phần tử vào trang
nội dung
5. Khám phá mã nguồn của
trang master và trang nội dung
6. Chạy thử ứng dụng
Demo
Sử dụng trang master
Side bar chứa
menu
Vùng chứa
nội dung
Banner
Template & Điều hướng trang Web 19
Footer
Kiểm tra tính hợp lệ của dữ liệu & Quản lý trạng thái 20
Bất kì web site chuyên
nghiệp nào đều cung cấp
cho người dùng các liên kết
để điều hướng đến các
trang trong web site
Các liên kết có thể trình bày
dưới dạng:
Menu
Đường dẫn liên kết (Site
Map Path)
Điều hướng trang Web
Menu dạng
TreeView
Site Map Path
SQL Server 2008 và Cơ sở dữ liệu quan hệ 21
Với các trang HTML thuần, lập trình viên sử dụng các
Hyperlink để xây dựng các liên kết điều hướng
Với một ứng dụng ASP.NET có nhiều cách để xây dựng
các liên kết điều hướng
Sử dụng HTML hyperlink, hoặc điều khiển hyperlink,
linkbutton của asp…
ASP.NET cung cấp nhóm các điều khiển Navigation để
xây dựng liên kết điều hướng dễ dàng.
TreeView
Menu
SiteMapPath
Điều hướng trang web như thế nào?
SQL Server 2008 và Cơ sở dữ liệu quan hệ 22
TreeView: Hiển thị các
liên kết dưới dạng cây,
giống cấu trúc thư mục
trên Windows
Explorer.
Menu: Quá quen thuộc
SiteMapPath: Hiển thị
dưới dạng dãy các liên kết
từ trang chủ đến trang
hiện tại
TreeView, Menu, SiteMapPath
SiteMapPath
Menu
SQL Server 2008 và Cơ sở dữ liệu quan hệ 23
TreeView
Các điều khiển TreeView, Menu, SiteMapPath hiển
thị cấu trúc điều hướng đã được định nghĩa trong một
file XML, có tên Web.sitemap
Web.sitemap phải được đặt trong thư mục gốc của
ứng dụng.
Để hiển thị cấu trúc điều hướng được định nghĩa trên file
Web.sitemap, điều khiển TreeView, Menu phải buộc
với một điều khiển SiteMapDataSource
Ngược lại, điều khiển SiteMapPath tự động hiển thị
cấu trúc điều hướng trong Web.sitemap không cần sử
dụng điều khiển SiteMapDataSource
Web.sitemap
SQL Server 2008 và Cơ sở dữ liệu quan hệ 24
Mỗi phần tử SiteMapNode định nghĩa một trang trong
web site
Một SiteMapNode có thể chứa các SiteMapNode con để
quy định cấu trúc phân cấp của các trang trong web
site
Web.sitemap
<siteMapNode url="" title=""
description="" />
<siteMapNode url="" title=""
description="" />
SQL Server 2008 và Cơ sở dữ liệu quan hệ 25
- URL: Url của trang
-Title: Đoạn văn bản hiển thị trên
menu
- Description: Đoạn văn bản tool tip
của trang
Ví dụ
File web.sitemap & hiển thị
<siteMapNode url="Default.aspx" title="Home"
description="Home page.">
<siteMapNode url="Service.aspx" title="Service and Support"
description="Customer service and product support.">
<siteMapNode url="CustService.aspx" title="Customer Service"
description="Customer service.">
<siteMapNode url="Support.aspx" title="Product Support"
description="Product support.">
<siteMapNode url="Map.aspx" title="Site Map"
description="A map of all the pages on this web site.">
<siteMapNode url="About.aspx" title="About Us"
description="All about our company.">
SQL Server 2008 và Cơ sở dữ liệu quan hệ 26
Các bước tạo liên kết điều hướng
B1. Tạo file web.sitemap định nghĩa cấu trúc phân cấp của
các liên kết điều hướng (như đã học)
B2. Thêm điều khiển TreeView (hoặc Menu hoặc
SiteMapPath)
B3. Thêm một điều khiển SiteMapDataSource và liên kết
tới file web.sitemap
Tạo liên kết
điều hướng như thế nào?
SQL Server 2008 và Cơ sở dữ liệu quan hệ 27
<asp:TreeView ID="TreeView2" runat="server“ DataSourceID="SiteMapDataSource1"
ShowLines="True">
Mã aspx của điều khiển Treeview (Tham khảo các thuộc tính của điều khiển TreeView,
SiteMapPath, Menu trong SGK)
Mã aspx định nghĩa điều khiển SiteMapDataSource của TreeView (Tham khảo các
thuộc tính trong SGK)
Trên từng trang riêng lẻ
Trên trang Master
Thông thường, các thành phần điều hướng hiển thị
giống nhau trên các trang một web site, nên sử dụng
điều hướng trên trang master
Sử dụng
điều hướng trang Web ở đâu?
SQL Server 2008 và Cơ sở dữ liệu quan hệ 28
Nội dung demo
Tạo ba cấu trúc điều hướng
(hiển thị như hình bên) sử dụng
TreeView, SiteMapPath, Menu
trên trang master đã tạo ở slide
trước.
Tùy chỉnh menu (màu sắc, kích
thước menu…)
Demo
Tạo liên kết điều hướng
SQL Server 2008 và Cơ sở dữ liệu quan hệ 29
Các bước
Thêm file web.sitemap. Cấu hình cấu trúc phân cấp điều
hướng trên file này
Thêm các điều khiển lên trang master
Thêm điều khiển menu vào phần sidebar
Thêm điều khiển SiteMapPath & điều khiển TreeView vào
phần trung tâm trang bên ngoài vùng chứa nội dung
Thêm điều khiển SiteMapDatasource
Chạy và kiểm tra ứng dụng
Thay đổi các thuộc tính màu sắc, độ rộng cho menu
Demo
Tạo liên kết điều hướng
SQL Server 2008 và Cơ sở dữ liệu quan hệ 30
Kiểm tra tính hợp lệ của dữ liệu & Quản lý trạng thái 31
Khi thiết kế một website, việc
định dạng hiển thị cho các
thành phần trên trang như bố
cục trang web, hiển thị hình
ảnh, font chữ, nền, button…
sẽ tạo sự lôi cuốn cho trang
web.
Định dạng trang Web
SQL Server 2008 và Cơ sở dữ liệu quan hệ 32
Các cách định dạng thường dùng
Sử dụng thuộc tính của các điều khiển
Sử dụng inline style
Sử dụng internal style
Sử dụng external style (File CSS)
Ngoài các cách định dạng trên, ASP.NET cung cấp
một tính năng để định dạng trang web. Đó là sử
dụng Theme
Có thể tạo ra các theme khác nhau và áp dụng các theme
này vào các trang trong ứng dụng để định dạng hiển thị
cho các thành phần trên trang
Có thể áp dụng một Theme cho toàn bộ web site hoặc mỗi
trang trong web site áp dụng một Theme khác nhau
Định dạng trang Web
SQL Server 2008 và Cơ sở dữ liệu quan hệ 33
Hai thành phần cơ bản
củaTheme
File CSS
File Skin
File CSS
Chứa các StyleSheet định dạng
hiển thị cho các phần tử HTML
trên trang ASP
File skin
Định dạng hiển thị cho các
điều khiển web server
Theme
SQL Server 2008 và Cơ sở dữ liệu quan hệ 34
Một ứng dụng Web sử dụng Theme để định dạng
hiển thị cho các phần tử html và các điều khiển
Theme được chứa trong thư
mục App_Themes
Thư mục App_Themes có thể
chứa nhiều Folder con. Mỗi
Folder con định nghĩa một
Theme.
Cấu trúc một folder Theme gồm
Các File CSS
Các File Skin
Folder Images chứa ảnh hoặc các
tài nguyên khác được sử dụng
trong file CSS và skin
Cấu trúc thư mục Theme
SQL Server 2008 và Cơ sở dữ liệu quan hệ 35
Cấu trúc thư mục Theme
File CSS của Theme
BODY {
FONT-FAMILY: Verdana, Geneva, Arial, Helvetica,
sans-serif;
FONT-SIZE: 11pt;
LINE-HEIGHT: 110%;
COLOR : #585880;
}
H1 {
font-family: Verdana, Geneva, Arial, Helvetica,
sans-serif;
COLOR: #585880;
margin-top: 3px;
}
SQL Server 2008 và Cơ sở dữ liệu quan hệ 36
Mã định dạng skin cho các điều khiển tương tự đoạn mã
của điều khiển trên trang aspx, chỉ khác không chứa
thuộc tính ID.
Hai loại skin
Skin mặc đinh
Không chứa thuộc tính skinID
Skin được đặt tên
Tên của skin được gán cho thuộc tính SkinID
Skin
SQL Server 2008 và Cơ sở dữ liệu quan hệ 37
<asp:TextBox runat="server"
BackColor="#FFFFFF" BorderStyle="Solid"
Font-Names="Verdana" ForeColor="#585880"
BorderColor="#585880" BorderWidth="1pt" />
Skin mặc định
Skin được đặt
tên
ASP.NET cung cấp hai loại theme khác nhau
Theme tùy chỉnh
Theme StyleSheet
Theme tùy chỉnh
Các style của theme tùy chỉnh được áp dụng sau external,
internal, inline style và các thuộc tính của điều khiển
Theme StyleSheet
Style của Theme StyleSheet được áp dụng trước external,
internal, inline style và thuộc tính của điều khiển
Theme tùy chỉnh/ Theme StyleSheet
SQL Server 2008 và Cơ sở dữ liệu quan hệ 38
Các bước tạo Theme
Tạo Folder chứa Theme bằng cách nhấn chuột phải vào
website>Add Asp.net Folder, chọn Theme. Đặt tên cho
Folder
Thêm file css vào Folder Theme
Thêm file skin vào Folder Theme
Tạo Theme
SQL Server 2008 và Cơ sở dữ liệu quan hệ 39
Một Theme tùy chỉnh có thể được áp dụng cho toàn bộ
ứng dụng hoặc cho các trang được chọn.
Áp dụng Theme tùy chỉnh cho toàn bộ ứng dụng
Thêm phần tử Page vào file web.config. Chỉ định giá trị
thuộc tính Theme bằng tên Theme
Hướng dẫn sử dụng Theme tùy chỉnh
SQL Server 2008 và Cơ sở dữ liệu quan hệ 40
Áp dụng Theme tùy chỉnh cho một trang
Ở giai đoạn thiết kế
Thêm thuộc tính Theme vào chỉ dẫn Page
<%@ Page="" Language="C#" Theme="SmokeAndGlass"
%>
Tại thời gian chạy
Gán giá trị cho thuộc tính Theme của lớp Page trong phương
thức xử lý sự kiện Page_PreInit
protected void Page_PreInit(object sender, EventArgs e)
{
Page.Theme = Session["MyTheme"].ToString();
}
Hướng dẫn sử dụng Theme tùy chỉnh
SQL Server 2008 và Cơ sở dữ liệu quan hệ 41
Áp dụng skin cho một điều khiển
Ở giai đoạn thiết kế
Gán giá trị cho thuộc tính SkinID của điều khiển
<asp:Label ID="lblName" runat="server"
SkinID="Head1">
Tại thời gian chạy
Gán giá trị cho thuộc tính SkinID của điều khiển trong
phương thức xử lý sự kiện PreInit
protected void Page_PreInit(object sender, EventArgs e)
{
lblName.SkinID = Session["MySkinID"].ToString();
}
Hướng dẫn sử dụng Theme tùy chỉnh
SQL Server 2008 và Cơ sở dữ liệu quan hệ 42
Hủy theme tùy chỉnh cho tất cả các trang trong web site
Thiết lập thuộc tính Theme của phần tử Page trong file
web.config bằng xâu rỗng
Hướng dẫn sử dụng Theme tùy chỉnh
SQL Server 2008 và Cơ sở dữ liệu quan hệ 43
Hủy theme tùy chỉnh cho một trang web
Ở giai đoạn thiết kế
Thiết lập thuộc tính Theme của chỉ dẫn Page bằng xâu rỗng
Tại thời gian chạy
Trong phương thức xử lý sự kiện PreInit gán giá trị thuộc
tính Theme của lớp Page bằng xâu rỗng
protected void Page_PreInit(object sender, EventArgs e)
{
Page.Theme = "";
}
Hướng dẫn sử dụng Theme tùy chỉnh
SQL Server 2008 và Cơ sở dữ liệu quan hệ 44
Hủy theme tùy chỉnh cho một điều khiển
Ở giai đoạn thiết kế
Thiết lập thuộc tính EnableTheming của điều khiển bằng
False
<asp:Label ID="lblName" runat="server"
EnableTheming="False" ForeColor="red">
Tại thời gian chạy
Trong phương thức xử lý sự kiện PreInit gán giá trị thuộc
tính EnableTheming của lớp điều khiển bằng False
protected void Page_PreInit(object sender, EventArgs e)
{
lblName.EnableTheming = false;
lblName.ForeColor = System.Drawing.Color.Red;
}
Hướng dẫn sử dụng Theme tùy chỉnh
SQL Server 2008 và Cơ sở dữ liệu quan hệ 45
Nội dung demo:
Tạo Theme
Tạo file CSS cho theme
Tạo file skin cho theme.
Định dạng hiển thị cho các điều khiển button, textbox…
Gán Theme tùy chỉnh cho toàn bộ trang trong web site.
Chạy thử
Hủy bỏ Theme tùy chỉnh cho toàn bộ trang. Chạy thử
Gán Theme tùy chỉnh cho một trang. Chạy thử
Hủy bỏ Theme tùy chỉnh cho một trang. Chạy thử
Gán skin cho một điều khiển. Chạy thử
Demo
Sử dụng Theme
SQL Server 2008 và Cơ sở dữ liệu quan hệ 46
Trang Master
Sử dụng trang master để tạo các trang có những thành
phần giống nhau (barner, menu, footer…)
Mỗi trang Master phải chứa tối thiểu một điều khiển
ContentPlaceHolder, nằm trong thẻ , quy định
vùng chứa nội dung (vùng hiển thị trang nội dung)
Trang nội dung chứa phần nội dung của từng trang riêng
lẻ
Tất thành phần được thêm bên ngoài vùng chứa nội dung,
sẽ được hiển thị trên mọi trang trong website.
Có thể tạo nhiều trang master cho một website, và chỉ
định trang master cho từng trang nội dung riêng lẻ.
Tổng kết
SQL Server 2008 và Cơ sở dữ liệu quan hệ 47
Điều hướng trang Web
ASP.NET cung cấp điều khiển Navigation để tạo các liên
kết điều hướng trang Web
TreeView
Menu
SiteMapPath
TreeView, Menu, SiteMapPath hiển thị cấu trúc phân cấp
điều hướng trang web được định nghĩa trong file xml, có
tên Web.sitemap
SiteMapPath tự động hiển thị cấu trúc phân cấp điều
hướng trong file web.sitemap
TreeView & Menu phải buộc với một điều khiển
SiteMapDataSource để hiển thị cấu trúc phân cấp điều
hướng trong file web.sitemap
Tổng kết
SQL Server 2008 và Cơ sở dữ liệu quan hệ 48
Theme
ASP.NET cung cấp tính năng Theme để định dạng hiển thị
cho các thành phần trên trang Web
Hai thành phần cơ bản của Theme
File CSS: Chứa các StyleSheet định dạng hiển thị cho các
phần tử HTML trên trang ASP
File Skin: Định dạng hiển thị cho các điều khiển web server
Hai loại Theme
Theme tùy chỉnh: Các style của theme tùy chỉnh được áp
dụng sau external, internal, inline style và các thuộc tính của
điều khiển
Theme: Style của Theme StyleSheet được áp dụng trước
external, internal, inline style và thuộc tính của điều khiển
Tổng kết
SQL Server 2008 và Cơ sở dữ liệu quan hệ 49