2

このアプリケーションには、一般的な色などを定義するスタイルシートがあります。ストアドプロシージャからデータセットを取得し、表示したくない列を削除して、プログラムで生成された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の色が自動的に一致し、大きくなります(背面を軽くたたく||クッキー)。

私よりも多くのことを知っているC#の人々からの考えはありますか(あなたのほとんどは…)?
ありがとう、
マイケル

4

3 に答える 3

2

すべての 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 を実行し、自分で解析する必要があります。

于 2009-03-03T17:35:48.680 に答える
1

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

それからCSSで私はこのようなものを持っていました...

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

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

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

お役に立てば幸いです。

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

于 2009-03-04T23:41:14.783 に答える
1

CSSファイルを自分で解析する必要があります。IIRCには、.NETFrameworkにCSSファイルパーサーはありません。ただし、ここで見つけることができる無料のものがあります:

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

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

于 2009-03-03T16:37:41.160 に答える