1

から取り込まれているレポートがありObjectDataSourceます。レポートには、ユーザーごとに展開/折りたたみ可能なノードが含まれます。

FilterExpressionデータソースに を設定してから を呼び出すことで、ビューアがレポートをフィルタリングできるようにしていますReportViewer1.LocalReport.Refresh()。これはポストバック中に行われます。

これにより結果がフィルター処理されますが、展開/折りたたまれたノードの状態は失われます。展開/折りたたまれたノードを ViewState に保存する方法はありますか? または、これを完全に達成するためのより良い方法はありますか?

4

1 に答える 1

1

この質問が出されてからしばらく経ちましたが、最近これを経験しなければならなかったので、これに対処している可能性のある誰かと私の経験を共有したいと思います.

扱いにくいですが、レポートに多値パラメーターを追加し、その値が切り替え可能なフィールドの値と一致する場合は、グリッドにグループ式を記述できます (ラベルにもそれらが表示されないようにします)。それが完了したら、トグルされたものを追跡する必要があります (これは難しいですが、javascript で可能です)。

基本的に、レポート ビューアー コントロール (vs2008 ではインデックス 4 & 5) には、イベントの名前とクリックされたテーブル セルの ID を持つ 2 つの非表示の子コントロールがあり、これを使用して JavaScript で配列を作成し、追跡できます。切り替え可能なすべてのフィールドのステータス。

于 2012-09-13T21:38:16.063 に答える