Laden...

MasterPage aus „Unterseite“ heraus verändern

Erstellt von 4breeze.com vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.908 Views
4breeze.com Themenstarter:in
17 Beiträge seit 2006
vor 17 Jahren
MasterPage aus „Unterseite“ heraus verändern

Hallo Leute!

in meiner MasterPage hab ich dieses Menue:

<div id="Menue">
            <ul>
                <li>
                    <asp:HyperLink ID="d0" runat="server" NavigateUrl="~/Default.aspx">d0</asp:HyperLink></li>
                <li>
                    <asp:HyperLink ID="d1" runat="server" NavigateUrl="~/Default1.aspx">d1</asp:HyperLink></li>
                <li>
                    <asp:HyperLink ID="d2" runat="server" NavigateUrl="~/Default2.aspx">d2</asp:HyperLink></li>
                <li>
                    <asp:HyperLink ID="d3" runat="server" NavigateUrl="~/Default3.aspx">d3</asp:HyperLink></li>
                <li>
                    <asp:HyperLink ID="d4" runat="server" NavigateUrl="~/Default4.aspx">d4</asp:HyperLink></li>
               
            </ul>
        </div>

wenn jetzt zB. die Default.aspx Seite geladen wird, möchte ich auf die MasterPage zugreifen und im <div id="Menue"> den dazugehörigen Link stylish verändern.

Wie kann ich auf eine MasterPage aus einer "Unterseite" heraus zugreifen und gegeben falls etwas verändern?

thx, george

B
249 Beiträge seit 2005
vor 17 Jahren

Auf die Masterpage bekommst du mit dem Property Master zugriff. Du musst aber zuerst auf dein Masterpage-type casten bevor du auf dessen Eigenschaften und Methoden zugriff hast.
Am Einfachsten aber bearbeitest du das Menu von der Masterpage aus. Und zwar bei jedem laden der Seite.
Dazu kannst du z.b. bei einem postback auf einen link ein argument in der url übergeben (z.b. navigateUrl = "~/Default.aspx?id=d0"). Am Ende der Seite machst du nun ein javascript, dass dir den classname der aktiven menuid ändert:
document.getElementById(URL_Parameter).className += " activeMenuItem";

Natürlich musst du dann auch daran denken alle anderen Menüpunkte wieder zurückzusetzen 😉

Anstelle von javascript kannst du auch für jeden Menüpunkt z.B: ein Eventhandler einfügen und den style im Codebehind behandeln.

181 Beiträge seit 2006
vor 17 Jahren

oder du machst Funktionen in den Master und rufst dann einfach

master.MyFunction() auf, geht einwandfrei