[C# asp.net] Probleem met 2 masterpages

Pagina: 1
Acties:

  • T-Blizzard
  • Registratie: Juni 2001
  • Laatst online: 23-02 19:10
Ik heb een project met daarin een pagina met daaraan een MasterPage met volgende inhoud

code:
1
2
3
4
5
6
7
8
9
<div id="innercontainer">
   <div id="menuleft">
      <!-- Linker Content Place Holder -->
      <asp:ContentPlaceHolder ID="LeftContent" runat="server" />
   </div>
   <div id="contentright">
      <asp:ContentPlaceHolder ID="MainContent" runat="server" />
   </div>
</div>

Ik heb nu een nieuwe MasterPage gemaakt om een print versie van de pagina te maken.
code:
1
2
3
4
5
<div id="innercontainer">
   <div id="contentprint">
      <asp:ContentPlaceHolder ID="MainContent" runat="server" />
   </div>
</div>


Nu kan ik met deze code bedacht om van MasterPage te wisselen wat opzicht goed gaat, op het feit na dat ik nu een error krijg waarbij die (uiteraard) een contentplaceholder niet kan vinden.
Hoe kan ik in mijn contentpagina aangeven dat ik die contentplaceholder niet wil gebruiken ? en dus leeg laten ? Ik heb me krom gegoogeld en misschien denk ik wel heel verkeerd :) dit leek me de mooiste manier om een prinversie te maken zonder allemaal lossen nieuwe pagina's te maken.
code:
1
2
3
4
5
6
7
8
9
10
11
protected void Page_PreInit(object sender, EventArgs e)
{
   if (Request.QueryString["print"] == "true")
   {
      Page.MasterPageFile = "../PrintTemplate.master";
   }
   else
   {
      Page.MasterPageFile = "../MainTemplate.master";
   }
}

  • giMoz
  • Registratie: Augustus 2002
  • Laatst online: 21-01 09:10

giMoz

iets met meester...

1 masterpage maken
en in die masterpage zetten:
code:
1
2
3
4
if (Request.QueryString["print"] == "true")
{
    LeftContent.visible = false;
}

lijkt mij voldoende

tis geen antwoord op j evraag maar wel een oplossing voor je probleem

Of niet natuurlijk...


  • T-Blizzard
  • Registratie: Juni 2001
  • Laatst online: 23-02 19:10
Ik zal het wat beter proberen uit te leggen :)

Ik heb aan de linkerkant een menu en aan de rechterkant de content.

Op het moment dat ik een pagina in print formaat wil weergeven moet dat linker menu dus compleet weg en de content dus helemaal naar links. Met andere woorden ik gebruik ook een andere css item. (vandaar dat ik dus maar 2 masterpages heb gemaakt).

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#menuleft 
{
    float               : left;
    width               : 239px;
    padding             : 0px 0px 0px 0px;
}
#contentright {
    float               : right;
    width               : 535px;
    padding             : 0px 0px 0px 0px;
}

#contentprint {
    float               : left;
    width               : 535px;
    padding             : 0px 0px 0px 0px;
}


Wat ik nu zit te proberen is die hele linkerkant met alle divjes te nesten in een panel, en te hidden of te showen, maar of dit nou de meest elegante manier is :?

  • giMoz
  • Registratie: Augustus 2002
  • Laatst online: 21-01 09:10

giMoz

iets met meester...

Een masterpage gebruiken
2x stylesheet aanroepen
de gewone met media=screen
de printversie met media=print

dit in combinatie met mijn bovenstaande post doet precies wat je wilt...

Of niet natuurlijk...


  • giMoz
  • Registratie: Augustus 2002
  • Laatst online: 21-01 09:10

giMoz

iets met meester...

maar, mijn eerste oplossing alleen werkte volgens mi jook wel hoor...

Of niet natuurlijk...


  • T-Blizzard
  • Registratie: Juni 2001
  • Laatst online: 23-02 19:10
giMoz schreef op woensdag 29 maart 2006 @ 11:15:
Een masterpage gebruiken
2x stylesheet aanroepen
de gewone met media=screen
de printversie met media=print

dit in combinatie met mijn bovenstaande post doet precies wat je wilt...
Dank u!

Dit was uiteindelijk de meest makkelijke en nette manier :D (met als enigste nadeel dat het nu net lijkt of de pagina brak uitgeprint zou worden wat uiteraard niet het geval is)
Had ik helemaal nog nie aan gedacht.

Zoals ik het nu gedaan heb:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@media print 
{
    #header {
        display: none;
    }
    
    #topmenu {
        display: none;
    }
    
    #menuleft 
    {
        display: none;
    }
    
    #contentright {
        float               : left;
        width               : 535px;
        padding             : 0px 0px 0px 0px;
    }
}

  • giMoz
  • Registratie: Augustus 2002
  • Laatst online: 21-01 09:10

giMoz

iets met meester...

maar volgen mij moet je in de masterpag o.b.v een querystring ook gewoon een contentplaceholder kunnen niet weergeven

zie eerste post..

Of niet natuurlijk...


  • T-Blizzard
  • Registratie: Juni 2001
  • Laatst online: 23-02 19:10
giMoz schreef op donderdag 30 maart 2006 @ 11:33:
maar volgen mij moet je in de masterpag o.b.v een querystring ook gewoon een contentplaceholder kunnen niet weergeven

zie eerste post..
Maar met css oplossing hoef ik ook nie met querystrings en masterpages te gaan gooien :)
Het content gedeelte van mijn site heeft vaste breedte van 535px (dus past altijd op een pagina)
Pagina: 1