2016-08-04 130 views
0

我想根據用戶更改我的報告的風格/主題。
我的所有用戶都有一個UserGroup。我的UserGroup具有自定義樣式。
所有這些信息都在數據庫中。
UserStyle:ID | ID UserGroup | LOGO |樣式1 |顏色1 |等..動態更改樣式。

我想改變我的報告風格與這些信息。
我知道可以給我的項目一個樣式名稱。
但我可以在主報告代碼後面定義它。

獎勵:我可以爲主報告只做一次嗎?

基本上使用樣式名稱作爲CssClass。

+0

你有沒有想過使用會話,並與你的JS CSS?所以我的意思是說你可以做的是在登錄時,你的會話開始以便用戶登錄,當他們登錄時,取決於用戶,例如,可以說,如果用戶「Admin」具有紅色的背景顏色,那麼您可以在js中執行類似.AddClass屬性的操作,以在用戶登錄時添加到您想要的類中?或者也許更新的CSS取決於用戶?這是可以肯定的。 –

+0

我已經在Page_Load的主頁中處理了Css。 我只是不知道如何在telerik報告中應用CSS或風格。 我知道如何設計一個元素,但它只是針對這個元素,我有一個包含23個子報告的主要報告。它像200+元素,以手動風格。 Iam尋找一種通用的方式來處理風格/主題。 我想在代碼後面做。因爲'stylename'(有趣的css類)不接受表達式。 –

回答

0

1.編程解決方案

如果您對GUI的反感,這是爲你而造!

的1RST是最差,但1RST工作,我身邊來了。

telerik報告中的樣式可以在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"; 

您可以在設計師的創造自己的風格規則,只分配的樣式組件在INITIALISE組件。

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