Crew .NET |
|
Mjeh! Je maakt gewoon een nieuwe ASP.NET website aan in Visual Studio. Er wordt standaard een pagina 'Default.aspx' met bijbehorende code-file aangemaakt, verwijder die. Voeg nu een nieuw item toe en dan kies je voor MasterPage.
In die MasterPage maak je de basis-layout. Stel we willen links een menu en de rest van de breedte onze inhoud, geen header/footer/... De opmaak van je MasterPage ziet er dan als volgt uit:
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="MyMasterPage.Master.cs" Inherits="MyMasterPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>
Mijn Site
</title>
</head>
<body>
<p>
<table>
<tr>
<td>
HIER KOMT JE MENU
<a href="pagina.aspx">KLIK</a>
</td>
<td>
<asp:ContentPlaceHolder ID="contentHolder" runat="server" />
</td>
</tr>
</table>
</p>
</body>
</html>
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="MyMasterPage.Master.cs" Inherits="MyMasterPage" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server"> Mijn Site HIER KOMT JE MENU <a href="pagina.aspx">KLIK </a> <asp:ContentPlaceHolder ID="contentHolder" runat="server" />
Je ziet op een gegeven moment in de code een ContentPlaceHolder staan. Hier kan je je pagina's in gaan "includen". Als je nu op de link van de vorige code klikt roept hij de pagina "pagina.aspx" aan. Voeg aan je website een nieuwe aspx-pagina (noem ze 'pagina.aspx') en je kan kiezen tot welke MasterPage deze moet behoren, selecteer de MasterPage die je al hebt en klik op OK. Je zal een hele andere code zien dan anders, iets als dit:
<%@ Page Language="C#" MasterPageFile="~/MyMasterPage.master" AutoEventWireup="true" CodeFile="pagina.aspx.cs" Inherits="pagina" Title="Een of andere pagina" %>
<asp:Content ID="inhoudIndex" ContentPlaceHolderID="contentHolder" Runat="Server">
HIER KOMT DE INHOUD
</asp:Content>
<%@ Page Language="C#" MasterPageFile="~/MyMasterPage.master" AutoEventWireup="true" CodeFile="pagina.aspx.cs" Inherits="pagina" Title="Een of andere pagina" %> <asp:Content ID="inhoudIndex" ContentPlaceHolderID="contentHolder" Runat="Server"> HIER KOMT DE INHOUD </asp:Content>
Hier zie je niet de gebruikelijke tags maar alle inhoud komt nu binnen die Content-tag. Zie dat je als ContentPlaceHolderID het ID meegeeft van de ContentPlaceHolder uit je MasterPage.
Voila, in het begin even raar maar daarna eens zo gemakkelijk! |