Avatar billede kongen72 Nybegynder
03. januar 2011 - 12:02 Der er 12 kommentarer og
1 løsning

mvc - masterpage og sidebar

Hej eksperter

Jeg skal have en venstre sidebar (reklamer, osv..). Som skal være gennemgående på alle sider, pånær forsiden.
Vil gerne holde det til 1 masterpage.
Har tænkt om man kan sige (hvis det er forsiden, så skal masterpagen ikke vises, ellers så skal den).
Men ved ikke helt hvordan det skulle fungere helt ??


Kan det gøres bedre. Hvordan klare man den ??

tak på forhånd.
Avatar billede kongen72 Nybegynder
03. januar 2011 - 12:15 #1
hvis det er forsiden, så skal sidebaren ikke vises, ellers så skal den. ikke masterpage! :-)
Avatar billede aaberg Nybegynder
03. januar 2011 - 15:11 #2
Du kan jo lave en boolean property på din master page, som eksempelvis hedder ShowSideBar. Denne kan som default være true.

Fra din forside:

((MyMasterPage)this.Master).ShowSideBar = false;
Avatar billede aaberg Nybegynder
03. januar 2011 - 15:15 #3
Så kan du override OnLoad på MasterPage filen, og tilføje:

this.SideBar.Visible = this.ShowSideBar;
Avatar billede kongen72 Nybegynder
03. januar 2011 - 15:58 #4
hej aaberg_cc

Kan du vises mig et eksempel? forstår ikke helt din kode.
Avatar billede Syska Mester
03. januar 2011 - 17:20 #5
#aaberg_cc
Han bruger MVC ... og dit synes at referere WebForms.

#kongen72
Som jeg lige mindes det ... så kan du lave det på 2 måder.

På din MasterPage ... laver du din default implementeret som skal vises ... og så er du fri for at lave den på alle dine sider.

På sin Forside lave du så bare en tom implementering af hvor din SideBar skal være ...

mvh
Avatar billede kongen72 Nybegynder
03. januar 2011 - 18:45 #6
hej buzzzz

så kommer du og redder mig igen :-)

Tror os jeg vil lave det på den måde, som du nævner. Er bare i tvivl om, hvordan koden skal se ud? -og hvor den skal skrives osv..


kan du hjælpe med det ?
Avatar billede kongen72 Nybegynder
03. januar 2011 - 18:53 #7
Er klar over, at sidebaren skal være på masterpagen. Så sidebaren går igen på alle siderne.

Men hvordan "gemmer" jeg sidebaren på forsiden. mere der jeg er lidt lost.
Avatar billede Syska Mester
03. januar 2011 - 18:57 #8
Uden for meget kode ... så kunne det ser sådan her ud:

I din MasterPage:
<div id="main">
            <asp:ContentPlaceHolder ID="MainContent" runat="server" />

            <div id="footer">
            <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server" />
                Sidebar ... hep
            <div id="Div1">
            </div>
        </div>


Der har jeg tilføjet en ContentPlaceHolder med indhold:
Sidebar ... hep

Som er default ...

På sider som ikke skal have default indhold gør du sådan her, f.eks på Index.aspx under din HomeController:
<asp:Content runat="server" ID="ContentPlaceHolder1" ContentPlaceHolderID="ContentPlaceHolder1">
    Ingen sidebar
</asp:Content>

Så vil der kommer til at stå "Ingen sidebar" i stedet for "Sidebar ... hep"

Håber du forstår bedre nu.

mvh
Avatar billede Syska Mester
03. januar 2011 - 18:59 #9
Det indhold som er i en ContentPlaceHolder er default indhold, dvs hvis du tilføjer den på siderne, så bliver indholdet overskrevet, og dermed kan du bare tilføje en tom.

mvh
Avatar billede kongen72 Nybegynder
03. januar 2011 - 21:03 #10
Så skal altså kun have en ekstra ContentPlaceHolder på de sider jeg ønsker ikke skal have en sidebar?


takker buzzzz. smider du et svar
Avatar billede Syska Mester
03. januar 2011 - 21:16 #11
Nej, en "Content" ... ContentPlaceHolder er til din MasterPage.

svar
Avatar billede aaberg Nybegynder
03. januar 2011 - 21:54 #12
Beklager, det sev ikke lige ind at det var et mvc projekt. Ser ud til at buzzz er lidt bedre rustet på dette område.

:)
Avatar billede kongen72 Nybegynder
03. januar 2011 - 22:20 #13
ja content selvfølgelig :-) var lidt for hurtig.
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

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