Ada banyak cara untuk mengganti skin. Yang paling sederhana biasanya dengan mengganti halaman CSS, dan CSS biasanya ditulis dalam file CSS eksternal. Kemudian beralih css sebenarnya mengubah jalur link href di html. Saya mencari secara online. Umumnya ada dua cara:
1. Letakkan kontrol pemegang pada halaman. Kemudian tulis tautan css gaya pengguna saat ini ke halaman tersebut secara terprogram.
2. Atur gaya css pada setiap kontrol melalui mekanisme refleksi.
Kedua cara di atas cukup merepotkan.
Yang pertama memerlukan penempatan kontrol pemegang di setiap halaman. Pendekatan serupa adalah dengan menambahkan runat=server ke tag link. Jika halamannya terlalu banyak, akan lebih merepotkan.
Tidak perlu memikirkan yang kedua. Ada banyak masalah dengan efisiensi pemrograman kinerja.
Saya ingat ketika saya mempelajari DNN, saya menemukan cara untuk mengubah alamat tindakan default di formulir. tidak buruk:
Timpa langsung acara Render
override yang dilindungi void Render (penulis System.Web.UI.HtmlTextWriter)
{
StringWriter sw = StringWriter baru();
HtmlTextWriter htmlWriter = HtmlTextWriter baru(sw)
;
//Gaya css yang dipilih oleh pengguna saat ini
string css = "<link href="css url" rel="stylesheet" type="text/css">" ;
string html = sw.ToString() ;
int startPoint = html.IndexOf("</head>", StringComparison.CurrentCultureIgnoreCase);
jika (Titik awal > 0)
{
html = html.Sisipkan(startPoint, css);
}
penulis.Tulis(html);
}
Letakkan ini di kelas dasar PageBase setiap halaman. Itu akan jauh lebih nyaman.
Tentu saja, jika Anda tidak ingin setiap halaman mewarisi kelas dasar khusus, Anda juga dapat menulisnya di HttpModule. Ini juga sangat nyaman.
Tuliskan di satu tempat, dan itu akan berguna untuk setiap halaman.
http://www.cnblogs.com/kwklover/archive/2007/01/03/610822.html