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