webForumDet fria alternativet

Templates för laytout

.NET

13 svar · 822 visningar · startad av maqe

Medlem sedan dec. 2003824 inlägg
Frågan#1

Har gjort ett content management system där jag vill att administratören skall kunna välja olika templates när han/hon uppdaterar sidan. T.ex. om det ska vara 1 spalt eller 2 spalter text på första sidan. Någon som har tips på hur man kan göra på ett snyggt och smidigt sätt?

Medlem sedan apr. 2004778 inlägg
#2

Jag kör med Wilson MasterPages. Funkar kanonbra.
Då kan du dels skapa en grundmall med den "statiska" layouten. Sedan skapar du olika templates (.aspx) sidor som först inkluderar grundmallen och sedan har olika layout som huvudinnehåll.
T.ex. onecol.aspx och twocol.aspx i ditt fall.
I databasen har man tabeller som innehåller templates, templateelements, pages, pagecontent
Läs mer på:
http://authors.aspalliance.com/paulwilson/articles/?id=14
http://aspnet.4guysfromrolla.com/articles/040704-1.aspx

Jag har även skrivit lite om mitt eget cms-tänk i min blog
http://www.pdc.se/blog/DisplayEntry.aspx?eid=27

Medlem sedan dec. 2003824 inlägg
#3

Tack för ett snabbt svar, ska läsa igenom det där så återkommer jag i samma tråd om jag har några frågor

Medlem sedan dec. 2003824 inlägg
#4

VS kan inte ens köra det för det står att den solutionen inte är konfigurerad för att debugas ???

Medlem sedan dec. 2003824 inlägg
#5

Har tankat ner denna fil men får det inte att lira ... WilsonMasterPagesCustom.zip, står att projektet inte kan debugas som jag skrev ovan

Medlem sedan dec. 2003824 inlägg
#6

Såhär har jag gjort , kopierar in allt i roten för iis, sen dubbelklickar jag på solution filen och när jag ska köra det sen så får jag det där felet

Medlem sedan dec. 2003824 inlägg
#7

Jag är nog trög men jag fattar inte hur man ska använda masterpages? Jag har kikat och följt dom exemplen ifrån länkaran PDahlen postade och har fått koden att funka men hur ska jag använda det?

Medlem sedan juni 20019 024 inlägg
#8

Till att börja med behöver du inte posta fyra inlägg på rad som säger att det inte fungerar.

För det andra så vore det bra om du mer detaljerat beskrev vad det inte är som fungerar. "Min bil fungerar inte" hjälper inte en bilmekaniker att hitta felet precis.

Medlem sedan dec. 2003824 inlägg
#9

Ursäkta om jag skrev så att du inte förstod. I mitt sista inlägg har jag skrivt att jag fått koden att fungera men jag förstår inte riktigt hur jag ska använda mig av det som PDahlen skriver.

Såhär ser min Template.ascx ut:

<%@ Control %>
<%@ Register TagPrefix="Wilson" Assembly="WilsonMasterPages"
Namespace="Wilson.MasterPages" %>
<html>
<head>
<title>MasterPages</title>
</head>
<body>
<h1><wilson:contentregion id="MPHeader" runat="server">
Page Header</wilson:contentregion></h1>
<form id="frmMain" method="post" runat="server">
<wilson:contentregion id="MPContent" runat="server">
Default Content</wilson:contentregion>
</form>
<h2><wilson:contentregion id="MPFooter" runat="server">
Page Footer</wilson:contentregion></h2>
</body>
</html>

och detta har jag lagt till i min web.config

<appSettings>
<add key="Wilson.MasterPages.TemplateFile" value="~/Template.ascx" />
<add key="Wilson.MasterPages.DefaultContent" value="MPContent" />
</appSettings>

Och detta är sedan min default.aspx

<%@ Page %>
<%@ Register TagPrefix="Wilson" Assembly="WilsonMasterPages"
Namespace="Wilson.MasterPages" %>
<wilson:masterpage runat="server" masterpagefile="Template.ascx">
<wilson:contentregion id="MPHeader" runat="server">
Sample Page</wilson:contentregion>
Real Content for the Default ContentRegion
</wilson:masterpage>

Jag har även fått tag på WilsonMasterPages.dll och gjort en referens till den filen i visual studio.

Min fråga är hur jag sedan skall kunna använda detta dynamiskt för att ladda olika templates? Har nog inte förtått vad koden gör riktigt heller. Ska läsa genom artiklarna i andra inlägget uppifrån i min tråd och se om jag kan få lite förståelse för det. Jag tar gärna en förklaring av någon som jobbat med masterpages också.

Ber om ursäkt för alla svar jag skapat i onödan, plocka bort dom om ni vill.

Medlem sedan apr. 2004778 inlägg
#10

Läs igenom artiklarna för i den ena står det hur du ska göra för att använda en annan template än standardmallen.
Om du ändrar masterpagefile="blabla.ascx" så använder sidan den mallen du ändrar till.

Om du tittar igenom koden lite noggrannare så förstår du nog. Den är inte så komplicerad egentligen bara man tar sig tid. ;)

Medlem sedan okt. 2002188 inlägg
#11

Hejsan

Satt å surfade på sourceforge å sprang på detta..
http://sourceforge.net/projects/wilsonwebform/

Medlem sedan apr. 2004778 inlägg
#12

Ja, det där är Paul Wilsons kontroll så man kan ha flera server-forms på en sida.
Det har dock inget att göra med hans MasterPages.

Du kan läsa mer om hans kontroller på http://wilsondotnet.com/

Medlem sedan dec. 2003824 inlägg
#13

PDahlen skrev:

Jag kör med Wilson MasterPages. Funkar kanonbra.
Då kan du dels skapa en grundmall med den "statiska" layouten. Sedan skapar du olika templates (.aspx) sidor som först inkluderar grundmallen och sedan har olika layout som huvudinnehåll.
T.ex. onecol.aspx och twocol.aspx i ditt fall.
I databasen har man tabeller som innehåller templates, templateelements, pages, pagecontent
Läs mer på:
http://authors.aspalliance.com/paulwilson/articles/?id=14
http://aspnet.4guysfromrolla.com/articles/040704-1.aspx

Jag har även skrivit lite om mitt eget cms-tänk i min blog
http://www.pdc.se/blog/DisplayEntry.aspx?eid=27

jag förstår nog inte skillnaden mellan masterpages och att ladda användarkontroller dynamiskt i placeholders? Du har inte lust att visa lite mer typ hur man ska bygga upp databasen etc?

Medlem sedan apr. 2004778 inlägg
#14

MasterPages handlar egentligen om Placeholders. Skillnaden är väl att det är smidigare att styra den överliggande designen.... tycker jag i alla fall. ;)

När det gäller databasen så pratar vi om något helt annat.
Jag har beskrivit min lösning på http://www.pdc.se/blog/DisplayEntry.aspx?eid=27
Där går jag även igenom de tidigare lösningar jag haft som har legat till grund för min nuvarande lösning.

Den bygger sedan på att jag skickar in ett sidid till varje sida. I min BasePage-klass hämtar jag sidinformationen baserat på det idnumret.
Jag har även skrivit ett inlägg i ett annat forum och där visar jag all kod.
Kanske enklare om jag länkar dit. http://www.pellesoft.se/communicate/forum/view.aspx?msgid=151102&forumid=10&sum=0

267 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)