Master Page a její použití
14. ledna 2007
|
Radek Kropík
|
Pokud se podíváte na nějakou webovou stránku, všimnete si, že část stránky zůstává stejná (hlavička, menu, patička) a mění se jen její část (výpis článku, informací apod.). Z toho vyplívá, že není potřeba výše zmíněné prvky, které jsou pro všechny stránky stejné, umisťovat zvláště do každé stránky, ale je lepší vytvořit jakousi šablonu, která bude tyto prvky obsahovat a jen určíme v této šabloně místo, kam budeme vkládat dynamicky měnící se obsah v závislosti na požadavku klienta. A toto nám právě umožňuje technika zvaná Master Page, která je dostupná v ASP.NET 2.0. Ve starší verzi 1.x nebude tato technika bohužel fungovat.
Master Page stránka se od normální ASP.NET stránky liší direktivou <%@ Master %> namísto <%@ Page %> a také příponou .master – např. stranka.master. Pojďme si nejprve ukázat příklad, jak taková Master Page vypadá. Následující příklad je uložen pod názvem masterPage.master.
<%@ Master Language=“VB“ %>
<html>
<head>
<title>Použití Master Page</title>
</head>
<body>
<form runat=“server“>
<table border=“0“ width=“100%“ bgcolor=“yellow“>
<tr>
<td>
<h1>Příklad použití Master Page</h1>
</td>
</tr>
</table>
<br />
<asp:ContentPlaceHolder runat=“server“
id=“Clanek“ />
</form>
</body>
</html>
Toto je pouze jednoduchá ukázka stránky a prosím webdesignéry, aby mě za něj nekamenovali. Tato stránka se od normální ASP.NET stránky liší změnou direktivy v hlavičce a také umístěním ContentPlaceHolderu do těla stránky. V místě, kde je tento ContentPlaceHolder vložen,
bude zobrazena tzv. contentová neboli obsahová stránka, kterou si nyní vytvoříme a nazveme ji default.aspx. Všimněte si, že tato stránka již neobsahuje tagy <html>, <head> nebo <body> a to z důvodu, že toho obsahuje již Mater Page stránka.
<%@ Page Language=“VB“
MasterPageFile=“masterPage.master“ %>
<asp:Content ID=“Content1“ runat=“server“
ContentPlaceHolderID=“Clanek“>
<div>
<h1>Vložená obsahová stránka</h1>
<p>Vítejte na mé první Master Page stránce</p>
</div>
</asp:Content>
Pokud nyní zavoláme stránku default.aspx, tato vyhledá Master Page stránku masterPage.master, dojde ke sloučení těchto dvou stránek a výsledek se vám zobrazí v prohlížeči jako jedna stránka, kde stránka default.aspx je obalena šablonou
masterPage.master. Jak je vidět z výše uvedeného jednoduchého příkladu, používání Master Page nabízí vývojářům skutečný komfort při tvorbě webových aplikací. K jedné Master Page stránce můžeme samozřejmě přiřadit více obsahových content stránek a tak vlastně sjednotit vzhled celého webu při
různorodém obsahu. Tento článek byl samozřejmě jen nástin toho, co Master Page umožňuje a jistě se k tomuto tématu ještě v budoucnu vrátíme.