11
votes

How we can hide columns dynamically in rdlc reports in MVC 2?

Is it is possible using external parameters? How we can programmatically control the visibility of columns in rdlc reports?

3

3 Answers

29
votes

You don't want to use the Hidden property, you actually want to select the column, Right Click and select Column Visibility. Once in here you can use an expression to set the visibility based on a parameter, something like this:

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

Hidden doesn't work in this instance because you're not actually applying it to an object like you are when you select something like a textbox.

17
votes

Following are the steps to hide the column

1) Add a boolean parameter with name column_visible in your report

2) Right Click on desired column and select Column Visibility.

3) Select the option "show or hide based on an expression"

4) add following formula

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

5) Add following code in c# file where you are assigning value to above added parameter

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);
0
votes

Select a column. In properties you have Hidden. property. Then you can set a condition, for example =Parameters!IsColumnHidden.Value.

If you want to do this from C# code I would send a parameter (like above) to the report saying if column should be hidden.