Avatar billede set Nybegynder
18. juli 2008 - 23:10 Der er 10 kommentarer og
1 løsning

Layout til masterpages

Hej

Jeg har et problem med layout i 2 forskellige masterpages.

Jeg har lavet 2 stk sitemap filer en til admin og en til user.

Jeg har lavet en mappe som indeholder de 2 masterpages samt en adminforside og userforside.

Disse henviser så til hver sin mappe, adminfiles og userfiles.

I hver mappe har jeg så en fil der f.eks. hedder produkter.aspx.

De er jo opbygget med hver sin menu ud fra sitemapfilen, så spørgsmålet er så hvordan jeg får det samme indhold vist i contentplaceholderen uden at skulle lave en version til admin og en version til user.

Altså kan man importere det samme indhold til contentplaceholderen i henholdsvis produkter.aspx i adminfiles mappen og produkter i userfiles mappen.

Håber spørgsmålet kan forståes og at nogen kan hjælpe mig.

På forhånd mange tak.
Avatar billede aaberg Nybegynder
19. juli 2008 - 13:58 #1
en Page har en property der hedder MasterPageFile, der kan du sætte masterpage til en side runtime.
Avatar billede set Nybegynder
19. juli 2008 - 15:16 #2
den er jeg ikke helt med på
Avatar billede aaberg Nybegynder
19. juli 2008 - 22:55 #3
Så vidt jeg forstår dit spørgsmål, så er du interesseret i at samme Page vises i ContenPlaceholderen i 2 forskellige Masterpages. Det kan du opnå ved at sætte, hvilken masterpage der skal bruges runtime.
Avatar billede set Nybegynder
20. juli 2008 - 10:50 #4
Når jeg laver en beskrivelse af et produkt og gerne vil have dette vist i henholdsvis adminfiles/produkter.aspx og userfiles/produkter.aspx contentplaceholder, hvordan vil du så skrive koden så dette kan la de sig gøre.
Jeg kan nemlig ikke se hvordan det kan gøres med det du skriver med hensyn til page og runtime.
Jeg er heller ikke nogen nørd i asp.net idet dette er mit første forsøg med en website i dette system. Jeg bruger C#.
Jeg håber du kan hjælpe med dette.
På forhånd mange tak.
Avatar billede aaberg Nybegynder
20. juli 2008 - 15:03 #5
Jeg skal bare forstå helt, hvad det er du prøver at gøre. Den produktbeskrivelse du skal have vist, hvor er den? Ligger den i en database? er det en page for sig selv? er det en UserControl. Jeg tror ikke jeg helt forstår dit scenario.
Avatar billede set Nybegynder
20. juli 2008 - 15:51 #6
Jeg har ikke lavet nogen endnu. Så det jeg gerne vil finde ud af er hvordan jeg laver det bedst muligt uden at gentage tingene. Jeg har nemlig også tænkt at lægge data i en DB og så trække derfra.
Men hvis jeg laver en side til hvert produkt ca. 10 sider hvordan kan jeg så genbruge siderne på hver sin masterpage.
Altså hvis jeg har produkt 1 på side 1 skal det gerne kunne ses af begge uden at jeg skal lave 2 sider til produkt 1.
Håber dette forklarer lidt mere af mit ønske.
Avatar billede aaberg Nybegynder
20. juli 2008 - 16:50 #7
Jeg tror du misforstås brugen af masterpages lidt. En masterpage får ikke tildelt en page til at være i sin contentplaceholder. Det er omvendt. En page får tildelt en masterpage! I din produkt-page kan du sætte masterpagen alt efter hvem der har logget ind.
Avatar billede set Nybegynder
21. juli 2008 - 10:48 #8
Den er jeg med på, men jeg kan ikke finde ud af hvordan jeg koder det.
For når jeg i page fjerner referencen til masterpage, så får jeg en fejl

Content controls are allowed only in content page that references a master page.

når jeg i codebehind under page_load bruger denne kode

Page.MasterPageFile.Contains("~/Admin/AdminMaster.master");

Så har du et forslag til hvordan jeg kan kode det.
Avatar billede aaberg Nybegynder
21. juli 2008 - 11:55 #9
Du skal sætte masterpage filen i OnPreInit metoden, du kan ikke sætte den på page_load. Skriv:

protected override void OnPreInit(EventArgs e)
{
    base.OnPreInit(e);
    this.MasterPageFile = "~/Admin/AdminMaster.master";

}

Du skal ikke fjerne referencen til MasterPage filen i aspx filen. Bare lad referencen være der, men overstyr den i koden.
Avatar billede set Nybegynder
21. juli 2008 - 12:40 #10
Det var lige det der skulle til så jeg siger rigtig mange tak for hjælpen.
Gider du smider et svar.
Avatar billede aaberg Nybegynder
21. juli 2008 - 12:54 #11
svar :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester