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

Chương 5: Thiết kế Website với MasterPage doc

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

Chương 5 Thiết kế Website với MasterPage
Bạn đang gặp vấn đề thiết kế layout chung cho website của mình? MasterPage có thể là một
đáp án tốt cho bạn giải quyết bài toán trên.
Với MasterPage để tạo một giao diện chung nhất cho Website của mình. Ví dụ website của
bạn có layout gồm 5 phần banner, footer, left, right
Và content(phần chứa nội dung hiển thị cho các tin). Như vậy bạn có thể thấy trên trang web
có các phần có cách trình bầy không thay đổi trong quá trình duyệt tin. banner, footer, left,
right: bạn có thể để các phần này vào một MasterPage và tất các trang web trong website của
bạn sẽ áp dụng layout này thông qua contentpage
I. Tạo MasterPage
Các bước tạo MasterPage giống với tạo các trang aspx bình thường nhưng trên hộp Add New
Item bạn chọn MasterPage bạn thấy dưới ô đặt tên phần mở rộng của nó sẽ là Master. Bạn có
thể tạo nhiều MasterPage cho ứng dụng web của mình.
Ví dụ:
Code 1.
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs"
Inherits="MasterPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
" />
<html xmlns=" /><head runat="server">
<title>MasterPage</title>
<style type="text/css">
html{ background-color:#e5e5e5; font-family:Verdana;}
.content{ background-color:White; border:black 1px solid; width:700px; margin:auto;}
.leftcolumm{ float:left; border-right:black 1px solid; width:200px; padding:5px;
height:300px}
.rightcolumm{ float:left; padding:5px; height:300px}
</style>
</head>
<body>


<form id="form1" runat="server">
<div class="content">
<div class="leftcolumm">
<asp:ContentPlaceHolder ID="contentplace1"
runat="server"></asp:ContentPlaceHolder>
</div>
<div class="rightcolumm">
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</div>
</form>
</body>
</html>
Để sử dụng MasterPage cho các trang aspx bạn cần khai báo trên chỉ dẫn <%@ Page %> với
thuộc tính MasterPageFile=”Tên _MasterPage của bạn”
ví dụ
code 2
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" %>
<asp:Content ID="contentleft" ContentPlaceHolderID="contentplace1" runat="server">
Trinh bay menu Left<br />
Trinh bay menu Left<br />
Trinh bay menu Left<br />
Trinh bay menu Left<br />
</asp:Content>

<asp:Content ID="content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
Trinh bay noidung<br />
Trinh bay noidung<br />
Trinh bay noidung<br />

Trinh bay noidung<br />
</asp:Content>
Trên trang aspx bạn khai báo 2 điều khiển asp:content và trong thuộc tính của nó bạn thiết lập
ContentPlaceHolderID=”Ten_Placeholder trong trang masterPage”.
Tạo một Content mặc định
Bạn không thể kết hợp một điều khiển Content với tất cả các điều khiển ContentPlaceHolder.
Khi trên trang MasterPage của bạn có 3 ContentPlaceHolder mà trong trang aspx của bạn chỉ
sử dụng hai điều khiển aspContent và chỉ đến 2 ContentPlaceHolder trên trang MasterPage
khi đó mặc định ContentPlaceHolder thứ 3 vẫn được hiển thị.
Đăng ký Master Page trong WebConfiguration
Bạn có thể áp dụng MasterPage cho tất cả các trang trong một Folder hay tất cả các Content
trong ứng dụng web của mình.
Thay vì việc trong mỗi trang aspx bạn phải gọi lời chỉ dẫn trang thẻ chỉ dẫn <%@ Page %>
thì bạn có thể thêm nó vào trong file webconfiguration
Trong ví dụ dưới đây là cách bạn sẽ đăng ký một trang SimpleMasterPage vào ứng dụng web
của mình để có thể áp dụng cho tất cả các trang trong foder(Sub Folder) chứa
Chú ý rằng file web.config này phải cùng nằm trong foleder đó:

<system.web>
<pages masterPageFile="~/SimpleMasterPage.master" />
</system.web>

Sử dụng FindControl trong MasterPage.
Khi bạn cần chỉnh sửa hay lấy thông tin của 1 điều khiển từ MasterPage bạn có thể sử dụng
phương thức FindControl() trong một Content Page
Ví dụ
Trang Findcontrol.master
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Findcontrol.master.cs"
Inherits="Findcontrol" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

" /><html xmlns=" /><head runat="server">
<title>Findcontrol</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="lblTitle" runat="server" /><br />
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>
Trang Findcontrol.aspx
<%@ Page Language="C#" MasterPageFile="~/Findcontrol.master"%>
<script runat="server">
void Page_Load(object sender, EventArgs e)
{
Label lbl = (Label)Master.FindControl("lblTitle");
lbl.Text = "Trung tam dao tao cong nghe cao iTechPro";
}
</script>
<asp:Content ID="content" runat="server" ContentPlaceHolderID="ContentPlaceHolder1">
Lay gia tri tu masterpage<br />
Lay gia tri tu masterpage<br />
Lay gia tri tu masterpage<br />
Lay gia tri tu masterpage<br />
Lay gia tri tu masterpage<br />
</asp:Content>
Trình bày thuộc tính MasterPage

Bạn có thể trình bày thuộc tính , phương thức từ MasterPage và có thể chỉnh sửa thuộc tính
hay phương thức từ trang Content.
Ví dụ
Trang Expose.master
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Expose.master.cs"
Inherits="Expose" %>
<script runat="server">
public string BodyTitle
{
get { return lblBody.Text; }
set { lblBody.Text = value; }
}
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
" />
<html xmlns=" /><head runat="server">
<title>Expose MasterPage Property</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h1><asp:Label ID="lblBody" runat="server" Text="iTechPro"></asp:Label></h1>
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>
Trang Expose.aspx
<%@ Page Language="C#" MasterPageFile="~/Expose.master" AutoEventWireup="true"

%>
<%@ MasterType VirtualPath="~/Expose.master" %>
<script runat="server">
void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Master.BodyTitle = "Trung tam dao tao cong nghe cao iTechPro";
}
}
</script>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1"
Runat="Server">
Property, Property, Property, Property, Property, <br />
Property, Property, Property, Property, Property, <br />
Property, Property, Property, Property, Property,<br />
Property, Property, Property, Property, Property<br />
</asp:Content>
Trong ví dụ trên bạn sẽ thấy một điểm mới đó là chỉ dẫn MasterType, để sử dụng được thuộc
tính hay phương thức từ MasterPage ta phải thêm vào chỉ dẫn MasterType và đặt thuộc tính
VirtualPath=”Ten_Mastepage”.
1

×