100 likes | 265 Views
Master Pages. Master Pages i ASP.NET 2.0. Motivation. Hvordan giver man sin hjemmeside et ensartet udseende? Det er et langsommeligt arbejde, når man har mange sider …. header. header. header. left pane. left pane. left pane. footer. footer. footer. Løsning — Master Pages.
E N D
Master Pages • Master Pages i ASP.NET 2.0
Motivation • Hvordan giver man sin hjemmeside et ensartet udseende? • Det er et langsommeligt arbejde, når man har mange sider …
header header header left pane left pane left pane footer footer footer Løsning — Master Pages • Ideen er at definere en skabelon til webstedet – "Master Page" • Derefter defineres en eller flereindholdsfelter – "ContentPlaceholder" site.master header placeholder left pane footer default.aspx page1.aspx page2.aspx page-specific content page-specific content page-specific content
Skab en Master Page • Næsten ligesom at skabe en standard ASP.NET, lige pånær: • Website > Add New Item > Master Page • anvender "Master"-direktiv og ".master"-filefternavn • tilføj ContentPlaceHolder kontrol(ler), som forsynes med indhold fra indholdssiderne. MasterPage.master <%@ Masterlanguage="C#"... %> <html> <body> . . . <asp:ContentPlaceHolder ID="MainContentArea" Runat="server" />
Skab indholdsside (Content Page) • Standard ASP.NET pages where: • Website > Add New Item > WebForm > "Select Master page" • side-direktivet indeholder en "MasterPageFile"-attribut • knyt Content-kontrollen til indholdet Default.aspx <%@ Page MasterPageFile="~/MasterPage.master"... %> <asp:Content ID="Content1" ContentPlaceHolderID="MainContentArea" Runat="server"> <h1>Here is some very exciting content...</h1> </asp:Content>
Design-time understøttelse • Når indholdssiderene designes, så vises master-siden i gråt … "Master Page"- delen vises, menkan ikke redigeres content placeholders kan redigeres
Arbejde med Master Pages • Indholdssider • bestemmer sidens titel (Title-egenskaben) • forsyner hver "place holder" med indhold • Tilgang til master-sidens egenskaber og kontroller • brug Master. for at få tilgang til egenskaber • brug Master.FindControl("ID") til at få adgang til kontroller på master-siden public partial class ContentPage : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Label lbl; lbl = (Label) Master.FindControl("lblStatus"); lbl.Text = "Content page is loading..."; } }
Arbejde med Content Pages • Indholdet i indholdssider kan være hvad som helst: • statisk tekst og billeder • dynamisk funktionalitet via kontroller