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
Hallo Waleed, beide Ansätze scheinen für mich zu arbeiten. Setzen Sie und dann zeigen/verstecken es am besten aus Code-Behind. Wenn Sie versuchen, runat = "server" aus dem Tag
zu entfernen funktioniert es? –Danke für deinen Kommentar, das ist seltsam, weil es hier nicht funktioniert. Darf ich fragen, welche Version von ASP.NET Sie verwenden? Ich verwende ASP.NET 2.0. Leider kann ich runat = "server" nicht aus dem head-tag entfernen, da es zum Setzen der Titelseiten benötigt wird, habe ich trotzdem versucht und einen Laufzeitfehler bekommen. –
OK, ich beginne langsam zu verstehen, was vor sich geht. Ich habe mit Google Chrome getestet, als ich diese Frage gepostet habe, jetzt habe ich es mit FireFox getestet und es funktioniert! Ich sehe die Seitenquelle in Chrome und ich sehe nichts, das Style-Tag wird nicht gerendert. Ich sehe in FireFox und der Style-Tag ist da! Was ist los?! –