質問

アプリケーションには、一般的な色などを定義するスタイルシートがあります…ストアドプロシージャからデータセットを取得し、表示したくない列を切り取って、プログラムで生成されたDataGridに詰め込み、そのDataGrid’のスタイルを設定する、クイックでダーティな関数を作成しました。 Excelにエクスポートします。誰もがExcel出力の色を愛しています(Gasp!それらはDataGridの色と一致します、何とか何とか…)。

最後に追加したいのは、スタイルをハードコーディングするのではなく、プログラムからスタイルにアクセスし、そこからカラーコードやその他のアイテム(.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;

もちろん、会社が別の“ブランド変更”スタイルシートの値が変わると、Excelの色が自動的に一致し、大きな値が表示されます(背面にパット|| cookie)。

私以上のことを知っているC#の人々からのご意見はありますか? ありがとう、
マイケル

役に立ちましたか?

解決

すべてのWeb.UI.Controlオブジェクトには.Stylesプロパティがあり、Styles [" Name"]としてアクセスできます。したがって、これを行うことができます:

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

数か月前に同様の考えがありました:)これが正しく機能するには、グリッドがrunat =" server"でなければならないことに注意してください。

編集: グリッドを読み取って使用するように見えます... .CssStyleとスタイルシート(.css)を使用している場合、そのcssファイルに対してHTTP GETを実行し、自分で解析する必要があります。

他のヒント

CSSファイルを自分で解析する必要があります。IIRCには、.NETフレームワークに標準でCSSファイルパーサーはありません。ただし、ここにある無料のものがあります:

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

これを使用して、CSSファイルを解析できるようになります。そこからスタイルと値を取得してデータグリッドに適用できるはずです。

しばらく前に、これらの行に沿って何かを書きました。 CSSファイルを処理するHttpHandler、asp.netがCSSファイルのリクエストを受信するようにIIS構成を変更、および色の定義を含む単純なxmlファイル構造が含まれていました。しかし、データベースを使用してこれを実行しました。これも問題ありません。

その後、CSSには次のようなものがありました...

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

button-background-colourとbutton-text-colourの値を定義する私のxmlを使用します。正規表現のテキスト置換を使用して、xmlファイルの関連する値をCSSファイルに置き換えました。

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

役立つこと。

これらのいずれかのポインターが必要な場合は、サンプルコードを掘り下げることができると確信しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top