0

私は jQuery を使用してポップアップをシミュレートしています。ユーザーは一連のフィルターを選択し、元のウィンドウで ListView を再バインドするために使用したいと考えています。

「ポップアップ」は ajax リクエストを介して開かれ、コンテンツは実際には異なる aspx ファイルです (レンダリングされた出力は、ポップアップとして機能する div に挿入されます)。

このポップアップには別の ListView があり、ページネーションがあります。

私の問題は、ポップアップが実際には同じページの div 内の html コンテンツであるため、ページ分割しようとすると、ページ全体がポストバックされ、フィルターを持つ aspx に置き換えられることです。

どうすればこれを修正できますか? 更新パネルを使用して ListView を含めようとしましたが、うまくいきませんでした。

4

3 に答える 3

0

まず、何が起こっているのかを考えてみましょう。元のページを送信すると、コードを取得するために「通常の」リクエスト/レスポンス トリップが行われます。このページには、本質的にモーダル ダイアログを起動する JQuery AJAX ビットがあります。望ましい効果は、ユーザーがフィルターを理解して送信するまで、新しいページで遊ぶことです。問題は、この「モーダル ページ」は、誰かが改ページすると情報が失われることです。

これに対する解決策は、理論的にはかなり単純です。ポップアップされたページに「フィルター」を保存して、ページネーション情報とともに再送信できるようにする必要があります。または、ユーザーがページ分割している間、結果セットをキャッシュする必要があります。

これを解決するために私がすることは、「フィルター」を配置した静的ページを作成し、ページを親ページに戻すこととは別にAJA​​Xのねじれを解決することです。すべての AJAX ビットが適切に機能するようになったら、それをポップアップ ルーチンにリンクし、ページネーションに問題がないことを確認します。最後の問題は、親ページに送信し、親ページがその JQuery ビットをサーバーに送信できるようにする JavaScript ルーチンを作成することです。

式の HTML DIV 部分についてはよくわかりませんが、この解決策がなくても問題を解決できると思います。実際、a) クエリ文字列を介して適用するフィルターを送信するか、b) 2 番目のページに送信するフォームを偽造することが可能であれば、AJAX を呼び出さずに「モーダル ポップアップ」ページを作成できると思います。クエリ文字列はより簡単なオプションですが、いくつかの情報が公開されます。フォーム送信を偽装することは、全体としてはそれほど難しくありませんが、ポップアップでは問題になる可能性があります。

アイデアを出しているところですが、何かきっかけになれば幸いです。

于 2009-02-27T15:44:50.477 に答える