ReportViewer 内でのインタラクティブな並べ替えとページングで、理解できない奇妙な問題が発生しています。aspx ページ内でローカル レポート定義と ReportViewer コントロールを使用しています。AsynchRendering を true に設定しています。この問題を除いて、すべてが正常に機能しているようです。問題を再現する手順は次のとおりです。
(全ソート前の1ページ目) COL1 | COL2 1 c 3 b 2
1) ページ 1 で、COL1 の昇順で並べ替え - 並べ替えは正しい
(ページ1) COL1 | COL2 1 b 2 c 3
2) ページ 2 に移動 - 並べ替えは正しい
(ページ2) COL1 | COL2 日 4 e 5 f 6
3) 列 X で降順で並べ替え (これを行った後、自動的にページ 1 に戻ります) - 並べ替えは正しいです
(ページ1) COL1 | COL2 26 25歳 w24
4) 再度ページ 2 に移動します。並べ替えが正しくありません。2 ページ目のソート クリックが発生しなかったかのように、データは依然として昇順でソートされます。
(ページ2) COL1 | COL2 日 4 e 5 f 6
その他の奇妙なこと:
- ページ 1 からページ 2 を除く他のページに移動すると、並べ替え順序は正しく、ページ 1 以外の他のページからページ 2 に移動すると、並べ替え順序は正しいです。
- AsyncRendering を false に設定すると、この問題はまったく発生しません。ただし、AsyncRendering を true に設定する必要があります。
- この問題は、IE6 および IE7 でのみ発生します。Firefox や Chrome では発生しません。
- これが最も奇妙なものです => この問題は、Web サーバーにデプロイした後にのみ発生します。コンピューターの Visual Studio 2008 開発サーバーから実行すると、すべてが例外なく完全に機能します。
これは問題です。私が働いている企業は IE6/IE7 しかほとんど使用していないためです。この並べ替え機能は必須であり、AsyncRendering を使用しないとページが遅すぎます。
これについての助けは大歓迎です。
(コメントできるほどの評判が得られる前に私が行った回答からのコメント):これで何が起こっているのかについて他に気づいたことがあります。フィドラーを使用して、ソート クリックとナビゲーション クリックごとに http 要求/応答を監視しましたが、ページ 1 からページ 2 に移動するときに http GET 要求がないことに気付きました。他のすべてのナビゲーション クリックとソート クリックは GET 要求を作成し、次に対応する応答で html が更新されます。別の並べ替えが発生した後にページ 1 から 2 に移動するときに GET 要求がない場合、ページは現在の並べ替え順序に更新されません。これは ReportViewer AJAX のバグのように思えます...