Navigation in ContentPlaceHolder der Materpage C# .NET





  • Keine Ideen weiter? Kann doch eigentlich nicht so schwer sein. 😕



  • Warum packst du den Main-Content nicht in ein UpdatePanel und triggerst beim Klick auf den Baum das UpdatePanel. So wird erstens nur der Content neugeladen, zweitens bleibt dein TreeView auf und drittens, muss nicht immer alles neugeladen werden.



  • Das ist eine sehr gute Idee.
    Wie muss ich das dann machen?
    Ich habe also in meiner masterpage den Abschnitt

    <div id="mainContent">
        <asp:ContentPlaceHolder id="MainContent" runat="server">
        </asp:ContentPlaceHolder>
    </div>
    

    kommt dann das Updatepanel einfach darum?

    <asp:UpdatePanel ID="updatePnl" runat="server">
        <div id="mainContent">
            <asp:ContentPlaceHolder id="MainContent" runat="server">
            </asp:ContentPlaceHolder>
        </div>
    </asp:UpdatePanel>
    

    Und wie müssten dann meine Seitenaufrufe aussehen? Hast du da ein Beispiel?
    Danke.



  • Einfach mal googlen, da müsste sich genug finden. 😉



  • Ich find irgendwie nicht genug. Zeig mir doch mal einen speziellen link wo genau das Problem beschrieben ist.
    Habe aber unter anderem den Satz gefunden

    Wenn Sie einer Masterseite ein ScriptManager-Steuerelement hinzufügen, sind Teilaktualisierungen von Seiten standardmäßig für alle Inhaltsseiten aktiviert.

    Langsam aber sicher bin ich verwirrt.



  • <asp:ScriptManager ID="ScriptManager1" runat="server" />
        <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
                         <Triggers>
                           <asp:AsyncPostBackTrigger ControlID="<ControlID>" />
                         </Triggers>
                         <ContentTemplate>
                           ... Dein Content ...
                         </ContentTemplate>
        </asp:UpdatePanel>
    

    Damit das UpdatePanel funktioniert, benötigst du den ScriptManager in der Masterpage.

    http://www.asp.net/ajax/documentation/live/ <- Hier ist eine Onlinedoku zu allem inkl. Beispielen.



  • Ok danke, werd ich mal probieren. Sowas ähnliches habe ich jetzt auch noch hier gefunden. Nur wirds immer ein wenig schwieriger zu überblicken, wenn die Funktionalität der masterpage mit rein kommt. Vor allem wenn man das erste mal damit handhabt.



  • Also es hat sich bei mri rein gar nichts geändert.
    Ich versteh auch nicht so ganz wie das funktionieren soll. Eine .aspx Seite die ich zum Beispiel über einen linkButton aus der masterpage heraus aufrufe und in dem content geladen werden soll, welchen jetzt das UpdatePanel umschließt, läd doch trotzdem immer die ganzen Inhalte der Masterpage neu.
    Also jedenfalls ist alles gleich geblieben.

    Wenn ich in der masterpage das so zu stehen habe

    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
            <Triggers>
            <asp:AsyncPostBackTrigger ControlID="LinkButton1"/>
            </Triggers>
            <ContentTemplate>
            <div id="mainContent">
                <asp:ContentPlaceHolder ID="MainContent" runat="server">
                </asp:ContentPlaceHolder>
            </div>
            </ContentTemplate>
            </asp:UpdatePanel>
    
            <div id="leftContent">
                <asp:LinkButton ID="LinkButton1" runat="server" PostBackUrl="~/Seite.aspx">LinkButton</asp:LinkButton>
            </div>
    

    und in Seite.aspx steht

    <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
        <asp:Image ID="iPicture" runat="server"  ImageUrl="Images/Picture.jpg" ImageAlign="Middle" />
    </asp:Content>
    

    Hat das updatePanel gar keine Wirkung.



  • Einen Effekt hat es doch. Wenn ich innerhalb einer aufgerufenen Seite was ändere, wird nicht die ganze Seite neu geladen.


Anmelden zum Antworten