动态更改样式。

时间:2016-08-04 09:59:56

标签: telerik telerik-reporting

我想根据用户更改报告的样式/主题 我的所有用户都有一个UserGroup。我的UserGroup具有自定义样式 所有这些信息都在DB中 UserStyle:ID | ID UserGroup | LOGO |风格1 |颜色1 |等..

我想用这些信息更改我的报告样式。
我知道可以给我的项目一个样式名称。
但我可以在主要报告代码中定义它。

额外奖励:主报告只能这样做一次吗?

基本上使用Style Name作为CssClass。

2 个答案:

答案 0 :(得分:0)

1。程序员解决方案

  

如果你对GUI有厌恶,那就是为你做的!

第一个是 最差 ,但第一个解决方法是我想出来的。

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
}


答案 1 :(得分:0)

2。 Designer GUI

  1. 设计所有style rules
  2. 使用导出它们。 Exporting and Reusing Style Sheets
  3. 您可以在代码中绑定它们,过滤参数。
    或者只是将它们添加到您的通话应用中。