2011-08-26 21 views
2

私はGoogleとSOを検索しましたが、解決策が見つかりませんでした。asp.netで動的にCSS要素を読み込む

私は、ユーザーがいくつかのGUIアスペクト(フォントの色、カスタムロゴの追加など)をカスタマイズできるasp.net Webアプリを持っています。この情報は、ユーザープロファイルデータベースに格納されます。

フォント色などを入力するCSSファイルがあります。メインページは、データベースからユーザープロファイルを読み込み、それに応じてページをカスタマイズします。

各ラベルに独自の「font-color =」を付ける以外に、データベースから返されたユーザープロファイル情報に基づいて、どのようにCSS要素を表示できますか? THX

+0

http://msdn.microsoft.com/en-us/library/ms366514.aspx –

答えて

4

あなたは、ASPXページを指す余分なCSSファイルを含めることができます。そして、CustomStyles.aspx変更既定のコンテンツタイプに

<link rel="stylesheet" type="text/css" href="/CustomStyles.aspx" /> 

を:

Response.Clear() 
Response.ContentType = "text/css" 

それからちょうどあなたのスタイルの出力を開始:

Response.Write("#awesome-button{color:" & ColorFromDatabase & ";}" 

他のスタイルの後にこのファイルが含まれていることを確認してください帽子が優先されます。そこにも!IMPORTANTを投げたいかもしれません。

Response.Write("#awesome-button{color:" & ColorFromDatabase & " !IMPORTANT;}" 
+2

+1われわれは私たちが熱くなったと思う。私は前に "0秒後に"答えたとは思わない! http://yfrog.com/j2ojtp –

+3

あなたはeBayで私を見てください! –

+0

ハードコードされた色や無効な色を避けるため、このための列挙型または公式のラッパーを知っていますか? ASP.NET MVCプロジェクトで作業することは意味があります。 – Shimmy

2

それはあなたが格納されている情報を持っているかに依存しますが、あなたは、このようなコードを要素にスタイルを追加することができます。

Button1.Style["font-weight"] = "bold"; 

それともあなただけのコントロールにCSSクラスを適用することができます。

Button1.CssClass = "buttonStyle"; 
2

データベースに保存されている設定に基づいてCSSファイルを返すだけのページを持つことができます。だから、必要があります:あなたはおそらく、Webサービス、古典的なASPページでその簡単に十分に行うことができます

<link rel="stylesheet" href="somepage.aspx?userid=<%=userID%>"> 

を、など

ポイントが埋め、そのページが同じ基本的なスタイルシートを生成するだろうということですユーザーが選択した正しい色などで表示されます。こうすることで、ページが読み込まれた後にサーバーサイドまたはクライアントサイドのコードでスタイルの変更を行う必要がなくなります。また、ユーザーの好みのコードをHTMLに混ぜたり、必要に応じて基本ページについて多くの変更を加える必要はありませんスタイルシートの動作方法を変更します。また、サイト自体のテスト以外でスタイルシートを簡単にテストすることもできます。

関連する問題