Bài12: Masterpage và UserControls
Lê Quang Lợi
Email:
Bài 12: Masterpage và UserControls
» Masterpage
» UserControl
» Them và Skin
Lê Quang Lợi:
Môn học : Công nghệ WEB (ASP.NET)
CNPM-CNTT-ĐHSPKT HY
12.1 MasterPage
» Master Page: là trang khung (layout). Còn được gọi là
trang Template (mẫu/khung)
» Cho phép các trang ASPX khác kế thừa
» Không cho phép kế thừa trang khác
» Master page không tự hiển thị giao diện
» Webpage chỉ kế thừa duy nhất một trang Masterpage
» Một ứng dụng có thể có nhiều Masterpage
» Thống nhất giao diện, giảm thiết kế, sử dụng lại
Lê Quang Lợi:
Môn học : Công nghệ WEB (ASP.NET)
CNPM-CNTT-ĐHSPKT HY
12.1 MasterPage
Thực thi trang Master page
Trang ASPX: chứa nội dung
riêng. Kết cấu kế thừa từ
trang MasterPage
Trang MasterPage: cho các
trang khác kế thừa cấu trúc
Trang kết quả được đưa ra
có sự kết hợp của
masterpage và trang thực thi
Lê Quang Lợi:
Môn học : Công nghệ WEB (ASP.NET)
CNPM-CNTT-ĐHSPKT HY
12.1 MasterPage
Cấu trúc trang
MasterPage
ContendPlateHolder
Lê Quang Lợi:
Môn học : Công nghệ WEB (ASP.NET)
CNPM-CNTT-ĐHSPKT HY
12.1.1 Trang Master Page
<%@ Master Language="C#" %>
"
/TR/xhtml11/DTD/xhtml11.dtd">
xmlns=" >
<head runat="server" > <title>Master page title</title> </head>
<body>
<form id="form1" runat="server"> <table> <tr> <td>
Chỉ thị trang MasterPage
ControlPalte Holder cho
phép Page kế thừa và cài
đặt giao diện riêng
id="Main" runat="server" />
</td> <td>
id="Footer" runat="server" />
</td> </tr> </table>
</form>
</body>
</html>
Lê Quang Lợi:
Thành phần giao diện của
trang Masterpage
- Cho phép Page kế thừa
- Chứa mã thể hiện khung
Môn học : Công nghệ WEB (ASP.NET)
CNPM-CNTT-ĐHSPKT HY
12.1.2 Page kết thừa từ Masterpage
<% @ Page Language="C#"
MasterPageFile="~/Master.master"
Chỉ thị trang MasterPage
Title="Content Page 1" %>
ContentPlaceHolderID="Main"
Kế thừa từ khung và cài
đặt riêng
Runat="Server"> Main content
</asp:Content>
ContentPlaceHolderID="Footer"
Nội dung cho phép cài đặt
riêng (mã HTML + Server
tags)
Runat="Server" > Footer content
</asp:content>
Lê Quang Lợi:
Môn học : Công nghệ WEB (ASP.NET)
CNPM-CNTT-ĐHSPKT HY
12.2 UserControls
» UserSontrol: server control được thiết kế dựa trên các
control khác (kể cả control vừa thiết kế)
» UserControl: Rick control theo yêu cầu cụ thể
» Một số lợi ích:
Xây dựng giao diện riêng biệt/đặc thù cho ứng dụng
Kế thừa thiết kế đã có
Sử dụng lại, nhiều nơi
Thống nhất khi thay đổi, phát triển, bảo trì …
Giảm chi phí: thời gian, nhân lực, tiền bạc …
Lê Quang Lợi:
Môn học : Công nghệ WEB (ASP.NET)
CNPM-CNTT-ĐHSPKT HY
12.2 UserControls
<%@ Control Language="C#"
Chỉ thị UserControl
ClassName="SampleUserControl" %>
<u>User Control</u>
Nội dung Usercontrol
Enter Name:
<asp:textbox id="Name" runat=server/>
OnClick="EnterBtn_Click" runat=server/>
<script runat=server> void
EnterBtn_Click(Object sender,
EventArgs e) {
Label1.Text = "Hi " + Name.Text +
" welcome to ASP.NET!";
}
</script>
<asp:label id="Label1" runat=server/>
Lê Quang Lợi:
Môn học : Công nghệ WEB (ASP.NET)
CNPM-CNTT-ĐHSPKT HY
12.2 UserControls
<%@ Page Language="C#" %>
<%@ Register TagPrefix="uc"
ĐĂNG KÝ VỚI TRANG aspx
TagName="Spinner"
Src="~/SampleUserControl.ascx"
Sử dụng Usercontrol
%>
<html> <body>
<form runat="server">
<uc:Spinner id="Spinner1" />
</form>
</body>
Lê Quang Lợi:
Môn học : Công nghệ WEB (ASP.NET)
CNPM-CNTT-ĐHSPKT HY
12.2.1 Tạo UserControls
» <%@ Control Language="C#" ClassName=“ust" %>
» Giao diện: ServerControl + thẻ HTML
» Đối tượng: Kết thừa từ đối tượng Control
» Sự kiện: Giống sự kiện của Page + Tự xây dựng
» Thuộc tính: tự tạo bởi người phát triển
» Phương thức: ServerControl+ Tự xây dựng
» Hoạt động: như servercontrol
Chú ý: UserControl được dịch cùng với trang khi gọi
Lê Quang Lợi:
Môn học : Công nghệ WEB (ASP.NET)
CNPM-CNTT-ĐHSPKT HY
12.2.2 Sử dụng
» Đăng ký sử dụng
<%@Register TagPrefix="My"TagName=“new"Src="~/new.ascx" %>
» Sử dụng: Tương tác như một control bình thường
Thẻ: <My:new runat="server" ID=“new1" />
Lập trình: tạo/ thiết lập(thuộc tính, sự kiện)/ Thêm
Lê Quang Lợi:
Môn học : Công nghệ WEB (ASP.NET)
CNPM-CNTT-ĐHSPKT HY
12.2.3 Custom Control
»
»
»
»
»
Server control tự xây dựng
Kế thừa từ lớp Control
Xây dựng server tag riêng cho từng ứng dụng
Xây dựng server tag cho ASPX
Mọi công việc phải xây dựng từ đầu
Tạo thuộc tính
Tạo phương thức
Tạo sự kiện
Đăng ký với hệ thống
Xây dựng giao diện từ: HtmlTextWriter
Chú ý: Xây dựng CustomControl khó hơn userControl rất nhiều
Lê Quang Lợi:
Môn học : Công nghệ WEB (ASP.NET)
CNPM-CNTT-ĐHSPKT HY
12.3 Them và Skin
» Skin và Them thể hiện giao diện tương tự như CSS
» Sự khác biệt duy nhất: chỉ áp dụng cho các serverCotrols
» Skin: thể hiện các gái trị cài đặt của thẻ
» Them: thẻ hiện tập các skin khác nhau
» Them và skin có thể lập trình được cịn CSS thì khơng
» Them và Skin làm cho ứng dụng web có nhiều cách thể hiện
giao diện khác nhau: màu sắc, kích thước, vị trí …
Lê Quang Lợi:
Môn học : Công nghệ WEB (ASP.NET)
CNPM-CNTT-ĐHSPKT HY
12.3.1 Tạo Skin và Them
» Skin: quy định/chứa các giá trị của thuộc tính server control
nhất định nào đó
» Skin nằm trong file .Them
Cú pháp: <asp:tên runat="server" thuộc tính=“giatri”/>
Ví dụ
<asp:Button runat="server" BackColor=“Red" ForeColor="black" />
Chú ý: thuộc tính là các thuộc tính trình bày nội dung (CSS)
Lê Quang Lợi:
Mơn học : Công nghệ WEB (ASP.NET)
CNPM-CNTT-ĐHSPKT HY
12.3.2 Sử dụng
» Web APP file Config
<configuration>
<system.web>
</system.web>
</configuration>
» Page: EnableTheming=“true“
<%@ Page Theme="ThemeName" %>
<%@ Page StyleSheetTheme="ThemeName" %>
» Controls: SkinID=“tenSkin"
Lê Quang Lợi:
Môn học : Công nghệ WEB (ASP.NET)
CNPM-CNTT-ĐHSPKT HY