2009-07-23 3 views
0

Ich habe eine Masterseite mit einem contentplaceholder-Steuerelement innerhalb des head-Tags, so dass ich einfach Inhalte aus den Inhaltsseiten zum head-Tag hinzufügen kann (wie Link-Tags, Styles, Skripte usw.).Wie wird ein Stylesheet in einem Inhaltssteuerelement dynamisch ein-/ausgeblendet?

Jetzt, auf einer der Inhaltsseiten, habe ich ein Stylesheet (Inline, dh innerhalb eines Style-Tags, nicht verknüpft mit einem Link-Tag), das ich je nach Status der Seite ein-/ausblenden möchte (Die Seite funktioniert wie ein Assistent, der ein Multiview-Steuerelement auf der Seite verwendet). Ich habe versucht, das Stylesheet innerhalb eines Platzhalter-Steuerelements mit Visible = false zu umbrechen und dann im Code auf Sichtbar zu setzen, aber das hat nicht funktioniert, das style-Tag wird nicht im HTML-Code gerendert. Ich habe das Platzhalter-Steuerelement entfernt und runat = "server" direkt zum style-Tag hinzugefügt, aber das hat nicht funktioniert.

Der Grund, warum ich die Stile in erster Linie versteckt, ist, dass sie Formatierung Platzhalter enthalten, dh. {0}, {1} ..etc, die ich im Code hinter dem Stylesheet ersetze. Ich möchte die Stile mit diesen Platzhaltern nicht an den Client senden. Um es klarer sehen die Arten ähnlich wie diese:

<asp:placeholder ID="_stylesPlaceHolder" runat="server" Visible="false"> 
<style type="text/css"> 
#elementid 
{ 
    width: {0}px; 
    height: {0}px; 
    overflow: hidden; 
    position: relative; 
} 
#elementid2 
{ 
    position: absolute; 
    width: {1}px; 
    height: {2}px; 
    top: {3}px; 
    left: {4}px; 
} 
.. and so on 

</style> 
</asp:placeholder> 

Ich könnte versuchen, die Stile hinzufügen dynamisch von der Code-behind-Seite (Page.Header.StyleSheet.CreateStyleRule zB mit), aber ich es vorziehen, sie zu halten in der .aspx-Datei, um den HTML-Code vom Code zu trennen und um das Ändern der Stile ohne dynamische Werte zu erleichtern.

Danke

+0

Hallo Waleed, beide Ansätze scheinen für mich zu arbeiten. Setzen Sie