torsdag 21 januari 2010

Menysystem och ny uppladdning

Det vanliga är att ha menyerna vertikalt till vänster. Det är nog inte alltför svårt att skriva den koden, men det finns en relativt vettigt objekt i ASP för hantering av menyn. Det heter SiteMapDataSource och det ska jag pröva.

Jag skapar ett utrymme för menyn med <div></div> och placerar "divven" till vänster med class="LeftMenuAbs". LeftMenuAbs är CSS-kommando som säger att menyn ska placeras 70 punkter från fönstrets överkant och 10 punkter från vänsterkanten.
.LeftMenuAbs
{ top: 70px; left: 10px; position: absolute;}

Innehållet placeras i en annan <div> med ContentAbs med 50px från överkanten och 150 punkter från vänster kant. Bredden är 600 punkter.
.ContentAbs
{top: 50px; left: 150px; position: absolute; width: 100%;}

Innehållet i menyn placeras i en XML-fil med namnet Web.sitemap. En första version ser ut så här:
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="" title="" description="">
<siteMapNode url="Default.aspx" title="Hem" description="" />
<siteMapNode url="UserAgreement.aspx" title="Användarvillkor" description="" />
<siteMapNode url="UserRegistration.aspx" title="Registrering" description="" />
</siteMapNode>
</siteMap>

Menykoden ligger i MasterPage.master ovanför
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
som markerar var Contentsidan innehåll visas. Menykoden ser ut så här:
<div class="LeftMenuAbs">
<a;sp:SiteMapDataSource ID="SiteMapDataSource" runat="server" ShowStartingNode="false" />
<asp:Menu ID="Menu" runat="server" DataSourceID="SiteMapDataSource">
</asp:Menu>
</div>

Objektet SiteMapDataSource kopplar sidan till xml-filen. Filnamnet behöver inte anges om den heter Web.sitemap. (Möjligen accepteras inte andra namn!) Meny-objektet är ett av de objekt som visar menyn. Ett alternativ är TreeView som visar en hiarkisk menu där grenarna kan öppnas och stängas med + och . Ett annat alternativ är SiteMapPath som visar besökaren var den varit.

Därmed fungerar menyn till vänster och innehållet ligger till höger. Just som det var tänkt. Sedan tar jag bort länkar i innehållssidorna och har en ny version att ladda upp.

Inga kommentarer:

Skicka en kommentar