2016-08-04 9 views
0

ユーザーに基づいてレポートのスタイル/テーマを変更したいと思います。
私のすべてのユーザーはUserGroupを持っています。私のUserGroupはカスタムスタイルを持っています。
すべてのこれらの情報は、DBにあります。
UserStyle:ID | IDユーザーグループ|ロゴ|スタイル1 |カラー1 |これらの情報でレポートスタイルを変更したいと考えています。
私のアイテムにスタイル名を付けることは可能です。
しかし、私はそれをメインレポートコードの背後に定義できますか?スタイルを動的に変更します。

ボーナス:メインレポートに対してこれを1回だけ行うことはできますか?

基本的にスタイル名をCssClassとして使用します。

+0

あなたはCSSを使用してセッションを使用することを考えましたか?あなたができることはログイン中であることを意味します。あなたのセッションはユーザーがログインするように開始します。ユーザー "管理者"が赤色の背景色を持っている場合、jsでは、ユーザーがログインするときに必要なクラスに追加する.AddClassプロパティを実行できますか?または、おそらくユーザーに応じてCSSを更新しますか?確かに可能です。 –

+0

私は既にPage_Loadの私のマスターページにCssを載せています。 私はちょうどtelerikレポートでCSSやスタイルを一般的にどのように適用するか分かりません。 私は要素をスタイルする方法を知っていますが、この要素のためだけです。23のサブレポートを持つ1つのメインレポートがあります。そのような200以上の要素を手作りのスタイルにします。 Iamはスタイル/テーマを扱う一般的な方法を探しています。 そして私はコードの背後でそれをやりたいと思います。 'stylename'(優しいCSSクラス)は式を受け入れないからです。 –

答えて

0

2.デザイナーGUI

  1. デザインのすべてのあなたのstyle rules
  2. エクスポートそれらを使用。 Exporting and Reusing Style Sheets

あなたはパラメータにフィルタリング、背後にあるあなたのコードでそれらをバインドすることができます。
または、あなたの呼び出しアプリに追加してください。

0

1.プログラマソリューション

あなたはGUIのために嫌悪感を持っている場合、これはあなたのために作られています!

1rstは最悪ですが、私の周りの1rst作業が思い付きました。

テレポートレポートのスタイルは、StyleRulesで定義できます。
ユーザーに基づいてテーマを管理するには、ReportParameterを使用できます。

Telerik.Reporting.Drawing.StyleRule styleRule1 = new Telerik.Reporting.Drawing.StyleRule(); 
styleRule1.Selectors.AddRange(new Telerik.Reporting.Drawing.ISelector[] { 
new Telerik.Reporting.Drawing.StyleSelector("MyStyle")}); 

if(reportParameter1.Value == "StyleUser1") 
{ 
    styleRule1.Style.Padding.Left = Telerik.Reporting.Drawing.Unit.Point(2D); 
    styleRule1.Style.Padding.Right = Telerik.Reporting.Drawing.Unit.Point(2D); 
    styleRule1.Style.BackgroundColor = System.Drawing.Color.Blue; 
    styleRule1.Style.Color = System.Drawing.Color.White; 
    styleRule1.Style.Font.Bold = true; 
    styleRule1.Style.Font.Name = "Segoe UI"; 
} 
else { 
    //default style 
} 

デザイナーまたはコンストラクターから要素にスタイル名を追加できます。
この方法:

this.textBox2.StyleName = "MyStyle"; 

あなたはデザイナーにあなたのスタイルルールを作成して、あなただけの初期化コンポーネント内のコンポーネントにスタイルを割り当てることができます。

if(reportParameter1.Value == "StyleUser1") 
{ 
    this.textBox1.StyleName = "MyStyle"; 
    this.textBox2.StyleName = "MyStyle"; 
    this.textBox3.StyleName = "MyStyle"; 
} 
else { 
    //default style 
} 


関連する問題