MS Reportviewer - 在ViewState中保存扩展/折叠节点?

时间:2008-10-27 14:39:14

标签: asp.net viewstate reportviewer

我的报告是从ObjectDataSource填充的。该报告包括每个用户的可扩展/可折叠节点。

我允许查看者通过在数据源上设置FilterExpression来过滤报告,然后调用ReportViewer1.LocalReport.Refresh()。这是在PostBack期间完成的。

这会过滤结果,但展开/折叠节点的状态会丢失。有没有办法在ViewState中存储展开/折叠节点?或者有没有更好的方法来完成这个?

1 个答案:

答案 0 :(得分:1)

我知道这问题已经有一段时间了,但是由于我最近必须经历这个问题,所以我想与可能正在处理这个问题的人分享我的经验。

这很棘手,但是如果您在报表中添加多值参数并且值与可切换字段中的值匹配,那么您可以在网格中编写一个组表达式(并在标签中也可以消失)。一旦完成,你只需要跟踪切换的内容(这很难,但可以使用javascript)。

基本上,reportviewer控件中有两个隐藏的子控件(vs2008中的索引4和5),它们具有事件的名称和单击的表格单元的id,这样你就可以构建一个数组javascript并跟踪所有可切换字段的状态。