在RDLC报表中动态隐藏列

11

我们如何在MVC 2中的rdlc报告中动态隐藏列?

是否可以使用外部参数来实现?我们如何以编程方式控制rdlc报告中列的可见性?

3个回答

32

你不需要使用Hidden属性,实际上你需要选择该列,右键单击并选择列可见性。一旦在此处,您可以使用表达式根据参数设置可见性,例如:

= iif(Parameters!column_visible.Value = 1, false, true)

Hidden 在这种情况下不起作用,因为您没有像选择文本框时那样将其应用于对象。


如果您使用Hidden的属性表达式,并且在右侧有更多的列,则空白空间将保留在中间。感谢@MrEdmundo! - Ramon Araujo
1
@RamonAraujo,嘿,你有找到在隐藏列时克服空白间隙问题的方法吗? - Bassel Shmali

19

以下是隐藏列的步骤:

1)在您的报告中添加一个名为column_visible的布尔参数

2)右键单击所需列并选择“列可见性”。

3)选择“基于表达式显示或隐藏”选项

4)添加以下公式

= iif(Parameters!column_visible.Value = "True", false,true)

5)在分配值给上述添加的参数的C#文件中添加以下代码

ReportParameter[] parameters = new ReportParameter[1];
if (condition)
{
   parameters[0] = new ReportParameter("column_visible", "True");
}
else
{
 parameters[0] = new ReportParameter("column_visible", "False");
}          
this.reportViewer1.LocalReport.SetParameters(parameters);

2
为什么要使用字符串,为什么不在iif语句中直接比较布尔值?这里不应该需要使用C#。 - MrEdmundo
闪电解决方案。谢谢。 - Hemant Ramphul

0

选择一列。在属性中,您有Hidden属性。然后,您可以设置条件,例如=Parameters!IsColumnHidden.Value

如果您想从C#代码中执行此操作,我会向报表发送一个参数(如上所述),以指示是否应隐藏列。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接