スキンを変更するには多くの方法がありますが、最も簡単なのは通常、ページ CSS を切り替えることであり、CSS は通常、外部 CSS ファイルに記述されます。次に、CSSを切り替えると、実際にはHTMLのリンクhrefパスが変更されます。ネットで検索しました。一般に、次の 2 つの方法があります。
1. ページにホルダー コントロールを配置します。次に、現在のユーザーのスタイル CSS リンクをプログラムでページに書き込みます。
2. リフレクション メカニズムを通じて各コントロールに CSS スタイルを設定します。
上記2つの方法はかなり面倒です。
1 つ目では、各ページにホルダー コントロールを配置する必要があります。同様のアプローチは、runat=server をリンク タグに追加することです。ページ数が多すぎるとさらに面倒になります。
2番目については考慮する必要はありません。パフォーマンス プログラミングの効率に関しては多くの問題があります。
DNN を学習していたときに、フォーム内のデフォルトのアクション アドレスを変更する方法を見つけたのを思い出しました。それを直接参照してください。悪くない:
Render イベントを直接オーバーライドする
protected オーバーライド void Render(System.Web.UI.HtmlTextWriter ライター)
{
StringWriter sw = 新しい StringWriter();
HtmlTextWriter htmlWriter = 新しい HtmlTextWriter(sw)
;
// 現在のユーザーが選択したスタイル CSS
string css = "<link href="css url" rel="stylesheet" type="text/css">"
;
int startPoint = html.IndexOf("</head>", StringComparison.CurrentCultureIgnoreCase);
if (開始点 > 0)
{
html = html.Insert(startPoint, css);
Writer.Write
(html);
}
これを各ページの基本クラス PageBase に置きます。そのほうがずっと便利です。
もちろん、すべてのページにカスタム基本クラスを継承させたくない場合は、それを HttpModule に記述することもできます。とても便利です。
1 か所に書いておくと、どのページでも役立ちます。
http://www.cnblogs.com/kwklover/archive/2007/01/03/610822.html