2008-10-27 104 views
1

我有一個從ObjectDataSource填充的報告。該報告包括每個用戶可擴展/可摺疊的節點。MS Reportviewer - 在ViewState中保存展開/摺疊的節點?

我允許查看者通過在數據源上設置FilterExpression來過濾報告,然後調用ReportViewer1.LocalReport.Refresh()。這是在回發期間完成的。

這將過濾結果,但展開/摺疊節點的狀態會丟失。有沒有辦法將展開/摺疊節點存儲在ViewState中?還是有更好的方法來完成這一切?

回答

1

我知道自從問了這個問題以來,我知道它已經有一段時間了,但是因爲最近我不得不經歷這個,所以我想和可能與此相關的人分享我的經驗。

這很棘手,但如果您向報告中添加多值參數,並且這些值與可觸摸字段中的值相匹配,那麼您可以在網格中編寫一個組表達式(並在標籤中使它們也可以消失)。一旦完成,你只需要跟蹤什麼是切換(這很難,但可以用JavaScript)。

基本上,reportviewer控件中有兩個隱藏的子控件(vs2008中的索引4 & 5),其中包含事件的名稱和單擊的表格單元的標識, javascript並跟蹤所有可觸摸字段的狀態。