2009-03-03 7 views
1

私たちのアプリケーションでは、共通の色などを定義するためのスタイルシートがあります...私は、ストアドプロシージャからデータセットを取得し、表示し、プログラムで生成されたDataGridに詰め込み、そのDataGridのスタイルを設定してからExcelにエクスポートします。誰もがExcelの出力で色を大好きです(Gasp!Da​​taGridの色と一致しています。

最後に私が追加したいのは、プログラムで、スタイルにアクセスして、ハードコードする代わりに、カラーコードやその他のアイテムをハードコード(.IntranetGridHead)から取得したいということです。明らかに

値を取得するためにプログラムでスタイルにアクセスする

int iHeaderColor = Convert.ToInt32 ("D0D7E8", 16); 
DataGrid dg = new DataGrid(); 
dg.DataSource = dsReturnDataSet.Tables[0].DefaultView; 
dg.DataBind(); 

dg.HeaderStyle.BackColor = System.Drawing.Color.FromArgb(iHeaderColor); 
dg.HeaderStyle.Font.Bold = true; 
dg.HeaderStyle.Font.Size = 10; 

会社は別の「再ブランド」とスタイルシートの値の変更を通過するたびに、その後、エクセルの色が自動的に一致し、私は大きな(バック||クッキーにPAT)を取得します。

私より多くのことを知っているC#人の考え(あなたのほとんどが...)?
おかげで、
マイケル

答えて

2

すべてのWeb.UI.Controlオブジェクトには、スタイル["名前"]としてアクセスできる.Stylesプロパティがあります。したがって、あなたがこれを行うことができます:私は数ヶ月前に、これが正しく動作するため:)注意を同様の考えを持っていた

DataTable dt = LookupStyles(); 
dg.Styles.Clear(); 
foreach (DataRow dr in dt.Rows) 
    dg.Styles.Add(dr["StyleName"].ToString(), dr["StyleValue"].ToString()); 

を、あなたのグリッドは=「サーバー」にrunatする必要があります。

編集:あなたは、グリッドを読んで、それを使用するよう が見える...あなたは.CssStyleとスタイルシート(.cssファイル)を使用している場合は、HTTPは、そのCSSファイルにGET行う必要があるでしょうそれをあなた自身で解析してください。

1

あなたはCSSファイルを自分で解析しなければならない、とIIRCは、箱から出して、.NETフレームワークにはCSSファイルパーサはありません。

http://www.codeproject.com/KB/recipes/CSSParser.aspx

あなたはその後、CSSファイルを解析するためにこれを使用することができるはずです。しかし、あなたはここで見つけることができる無料のものがあります。そこからスタイルと値を取得してデータグリッドに適用できるはずです。

1

私はこれらの行に沿って何かを書きました。 CSSファイルを処理するHttpHandler、CSSファイルのリクエストを受け取るためにasp.netを取得するためのIIS設定の変更、および自分のカラー定義を含む単純なxmlファイル構造が含まれていました。しかし、あなたはデータベースでそれをやったこともありますが、これも問題ありません。

は、次にCSSで私はこのような何かを持っていた...

.button 
{ 
    background-color: $colours:button-background-colour; 
    color: $colours:button-text-colour; 
} 

私のxmlは、ボタンの背景色、ボタン、テキストの色の値を定義しています。私は正規表現のテキスト置換を使用して、xmlファイルの関連する値に置き換えてCSSファイルを処理しました。

これらのアイデアをいくつか取り、既存のコードと組み合わせて希望の効果を得ることができると確信しています。もちろん、あなたのデータベース/ xmlファイルへのキャッシングと変更に対処する必要があります。

希望に役立ちます。

もしあなたがそれを指し示す必要があれば、私はいくつかのサンプルコードを掘り下げることができると確信しています。

関連する問題