我的报告是从ObjectDataSource
填充的。该报告包括每个用户的可扩展/可折叠节点。
我允许查看者通过在数据源上设置FilterExpression
来过滤报告,然后调用ReportViewer1.LocalReport.Refresh()
。这是在PostBack期间完成的。
这会过滤结果,但展开/折叠节点的状态会丢失。有没有办法在ViewState中存储展开/折叠节点?或者有没有更好的方法来完成这个?
答案 0 :(得分:1)
我知道这问题已经有一段时间了,但是由于我最近必须经历这个问题,所以我想与可能正在处理这个问题的人分享我的经验。
这很棘手,但是如果您在报表中添加多值参数并且值与可切换字段中的值匹配,那么您可以在网格中编写一个组表达式(并在标签中也可以消失)。一旦完成,你只需要跟踪切换的内容(这很难,但可以使用javascript)。
基本上,reportviewer控件中有两个隐藏的子控件(vs2008中的索引4和5),它们具有事件的名称和单击的表格单元的id,这样你就可以构建一个数组javascript并跟踪所有可切换字段的状态。