vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

ASP.NET, WebServices u. Remoting
Re: Contentplaceholder dynamisch verändern in der Masterpage 
Autor: Jojo
Datum: 24.03.12 10:45

Hey Micke,

um es verweg zu nehmen - Die Idee ist Spitze!

Bei der Umsetztung hängt es aber im Detail. Dazu muss ich wohl etwas mehr ins Detail gehen:

Ich lasse die Layouts von einem Design-Programm erstellen (Artisteer). Das Teil ist Super und kann extrem viel. Was ich Programmiere ist ein Webshop-System wo die Benutzer sich selbst die Layouts in Artisteer erstellen können und diese hochladen. Wie gesagt - das Teil ist extrem flexibel und das ist genau das Problem was ich habe. Je nachdem ob Du z.B: die Navigation über oder unter dem Kopf haben möchtest muss natürlich der Content an einer anderen Stelle stehen.

Das Problem kann ich mit Deinem Beispiel super lösen. Ich hänge einfach unten an die Seite 4 Divs dran und lade da die ContentplaceHolder rein. Die Inhalte verschiebe ich dann an die richtige Stelle

   <form id="form1" runat="server">
<div id="DivMenuContentPlaceHolder" runat="Server"><asp:ContentPlaceHolder _
  ID="MenuContentPlaceHolder" runat="server" /></div>
 <div id="DivHeaderContentPlaceHolder" _
 runat="Server"><asp:ContentPlaceHolder ID="HeaderContentPlaceHolder" _
 runat="server" /></div>
 <div id="DivSidebar1ContentPlaceHolder" _
 runat="Server"><asp:ContentPlaceHolder ID="Sidebar1ContentPlaceHolder" _
 runat="server"/></div>
 <div id="DivSheetContentPlaceHolder" runat="Server"><asp:ContentPlaceHolder _
 ID="SheetContentPlaceHolder" runat="server"/></div>
</form1>
Das Artisteer erstellt eine fertige MasterPage. Diese lese ich ein und speicher mir den Inhalt in der Datenbank. Das blöde ist, dass der Aufbau der DIVs sich auch verändert. Deshalb kann ich die DIV nicht in der Masterpage anlegen sonder muss die auch über Innterhtml laden - in die Form1

 form1.innerhtlm = MasterHTMLcode
Die DIVs für die CPH können sich - je nach erstellem Layout - verändern.

Z.B:
<div class="art-nav-inner">
	<asp:contentplaceholder id="MenuContentPlaceHolder" _
  runat="server"></asp:contentplaceholder>
</div>
oder
<div class="art-nav-outer">
	<asp:contentplaceholder id="MenuContentPlaceHolder" _
  runat="server"></asp:contentplaceholder>
</div>
Ich muss jetzt ermitteln in welches DIV welcher MenuContentPlaceHolder muss. Das klappt auch noch.

Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim Master_HTML() As String = Split(Session("Master"), _
          "<asp:contentplaceholder id=" & Chr(34))
        Dim CPH(0 To 4) As String, DIV(0 To 4) As String, CPH_InnerHtml(0 To 4) _
        As String
        For I = 1 To UBound(Master_HTML) - 1
            'Name des Contenplaceholders ermitteln
            CPH(I) = Left(Master_HTML(I), InStr(Master_HTML(I), Chr(34)) - 1)
            'Name des DIV Elements ermitteln
            DIV(I) = Master_HTML(I - 1).Replace(Chr(34) & ">", "")
            DIV(I) = Trim(Right(DIV(I), Len(DIV(I)) - InStrRev(DIV(I), Chr( _
              34))))
            'ContentPlaceholder Source entfernen
            Master_HTML(I) = Right(Master_HTML(I), Len(Master_HTML(I)) - InStr( _
              Master_HTML(I), "</asp:contentplaceholder>") - 24)
        Next I
    End Sub
Ich habe jetzt in CPH() die Namen der Contentplacerholder und in DIV() die passenden Namen der DIVs
Jetzt muss ich noch die Inhalte der Contentplaceholer über die DIV in die CPH_InnerHTML() laden

Das klappt nicht! Hier bin ich mir nicht sicher wie das geht. Ich hatte es versucht mit so was wie:

CPH_InnerHtml(1) = CType(form1.FindControl(CPH(1)), HtmlGenericControl).InnerHtml

Aber hier ist wohl der Typ HtmlGenericControl falsch! Es kommt der Fehler:
Innerer Inhalt von DivHeaderContentPlaceHolder konnte nicht abgefragt werden, da der Inhalt nicht literal ist.

Die letzte Frage ist also:
Wie bekomme ich aus meinem DIV mit FindControl die Innerhtlm raus?

Joachim

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Contentplaceholder dynamisch verändern in der Masterpage4.010Jojo23.03.12 10:57
Re: Contentplaceholder dynamisch verändern in der Masterpage2.577Micke23.03.12 15:55
Re: Contentplaceholder dynamisch verändern in der Masterpage2.544Jojo23.03.12 16:35
Re: Contentplaceholder dynamisch verändern in der Masterpage2.440Micke23.03.12 19:20
Re: Contentplaceholder dynamisch verändern in der Masterpage2.862Jojo24.03.12 10:45
Re: Contentplaceholder dynamisch verändern in der Masterpage2.379Micke27.03.12 11:39
Re: Contentplaceholder dynamisch verändern in der Masterpage2.471Jojo27.03.12 12:02

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel