Es gibt viele Möglichkeiten, Skins zu ändern. Die einfachste besteht normalerweise darin, das Seiten-CSS zu wechseln, und CSS wird normalerweise in eine externe CSS-Datei geschrieben. Dann ändert das Wechseln von CSS tatsächlich den Link-Href-Pfad in HTML. Ich habe online gesucht. Im Allgemeinen gibt es zwei Möglichkeiten:
1. Platzieren Sie ein Holder-Steuerelement auf der Seite. Schreiben Sie dann programmgesteuert den CSS-Link im Stil des aktuellen Benutzers auf die Seite.
2. Legen Sie CSS-Stile für jedes Steuerelement über den Reflexionsmechanismus fest.
Die beiden oben genannten Methoden sind ziemlich mühsam.
Die erste erfordert die Platzierung einer Haltersteuerung auf jeder Seite. Ein ähnlicher Ansatz besteht darin, runat=server zum Link-Tag hinzuzufügen. Wenn es zu viele Seiten gibt, wird es problematischer.
Über den zweiten Punkt muss nicht nachgedacht werden. Es gibt viele Probleme mit der Effizienz der Leistungsprogrammierung.
Ich erinnere mich, dass ich beim Erlernen von DNN eine Möglichkeit gefunden habe, die Standardaktionsadresse im Formular zu ändern. Bitte beziehen Sie sich direkt darauf. nicht schlecht:
Überschreiben Sie das Render-Ereignis direkt
protected override void Render(System.Web.UI.HtmlTextWriter-Writer)
{
StringWriter sw = new StringWriter();
HtmlTextWriter htmlWriter = new HtmlTextWriter(sw)
;
//Der vom aktuellen Benutzer ausgewählte CSS-Stil
string css = ""
;
int startPoint = html.IndexOf("", StringComparison.CurrentCultureIgnoreCase);
if (startPoint > 0)
{
html = html.Insert(startPoint, css);
}
writer.Write(html);
}
Fügen Sie dies in die Basisklasse PageBase jeder Seite ein. Das wäre viel bequemer.
Wenn Sie nicht möchten, dass jede Seite eine benutzerdefinierte Basisklasse erbt, können Sie diese natürlich auch in HttpModule schreiben. Es ist auch sehr praktisch.
Schreiben Sie es an einer Stelle und es wird für jede Seite nützlich sein.
http://www.cnblogs.com/kwklover/archive/2007/01/03/610822.html