3

我有一个远程模式下的reportviewer 控件,它加载具有九个参数的报告。在某些情况下,我想限制报告中这些参数之一(下拉列表)的选项。如果我这样做:

protected void Page_Load(object sender, EventArgs e)
{
  var rpt = ReportViewer1.ServerReport;
  var param = rpt.GetParameters()[3];
  var option = param.ValidValues[0];
  param.ValidValues.Clear();
  param.ValidValues.Add(option);
}

然后我第一次加载页面时,只出现那个选项。当我单击运行报告按钮并刷新报告时,所有原始选项都返回到列表中,并且我在报告中收到索引超出范围错误。

是否可以在页面代码中执行此操作?

4

2 回答 2

1

我会向报告本身添加一个名为@Top 的新参数。默认情况下,该值是您知道太高的值,例如 1000。

然后将您的下拉列表的数据集修改为

SELECT TOP @Top
(your original query here)

然后在您的 PageLoad 中,您可以将一个值传递给 ReportViewer 设置 @Top = 1。这会将您的下拉列表仅限于第一个选项。

于 2015-03-03T23:06:47.597 回答
0

是否可以从报告本身评估过滤条件?如果是这样,我将更改报表以使用表达式或存储过程过滤参数列表数据集,而不依赖于修改报表查看器。

于 2015-02-27T06:19:37.840 回答