2016-08-04 8 views
0

Я хочу изменить стиль/тему моего отчета на основе User.
У моего пользователя есть UserGroup. Моя пользовательская группа имеет собственный стиль.
Вся эта информация находится в БД.
UserStyle: ID | ID UserGroup | ЛОГОТИП | Стиль 1 | Цвет 1 | ect ..Изменение стиля динамически.

Я хочу изменить свой стиль отчета с этими сведениями.
Я знаю, что можно указать мой стиль имени стиля.
Но могу ли я определить его в главном отчете Код позади.

Бонус: Могу ли я сделать это Только один раз для основного отчета?

В основном используется имя стиля как CssClass.

+0

вы подумали об использовании сеанса, а JS - с CSS? так что я имею в виду то, что вы можете сделать, это при входе в систему, ваш сеанс начинается, так что пользователь входит в систему при входе в систему, в зависимости от пользователя, например. скажем, если пользователь «Admin» имеет фоновый цвет красного цвета, то вы можете в js сделать что-то вроде свойства .AddClass для добавления в класс, который вы хотите, когда пользователь входит в систему? ИЛИ, возможно, обновить css в зависимости от пользователя? можно быть уверенным. –

+0

Im уже обрабатывает Css на моей главной странице в Page_Load. Я просто не знаю, как применять CSS или стиль в целом в отчете telerik. Я знаю, как стилизовать элемент, но он будет только для этого элемента. У меня есть 1 основной отчет с 23-ю отчет. Его как 200 + элемент к ручному стилю. Iam ищет общий способ обработки стиля/темы. И я хотел бы сделать это в коде позади. Потому что 'stylename' (kindish css class) не принимает выражение. –

ответ

0

2. Конструктор GUI

  1. Design все ваши style rules
  2. Экспорт их использованием. Exporting and Reusing Style Sheets

Вы можете связать их в коде позади, фильтрация по параметру.
Или просто добавьте их в свои приложения-приложения.

0

1. Программатор решение

Если у вас есть отвращение к ГИП Это сделано для вас!

1-й является худший, но 1-й Обойти я придумал.

Стиль в отчете 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"; 

Вы можете создать свои правила стиля в конструкторе и только назначить стиль для компонента в компоненте Инициализировать.

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