Add/Edit Customer と Customer List(View) の 2 つのページを含む asp.net アプリケーションがあります。ajax タブ コンテナ/アコーディオンを使用して iframe の 2 ページ以上をホストするホスト ASP.NET アプリケーションがもう 1 つあります。以下に示すように、TAB1 には iframe 1 の Edit Customer Page が含まれ、TAB2 には View Customers ページが含まれます (一度にアクティブにできるのは 1 つだけです)。TAB2 から TAB1 に移動する必要がある場合 (たとえば、ユーザーが顧客リストの編集リンクをクリックした場合)、クエリ文字列でタブの名前を渡してホスト アプリケーションを更新する必要があります (この部分はホスト アプリによって処理され、利用可能な唯一の方法です) TAB を切り替える)。
クエリ文字列以外で TAB2 から TAB1 にデータを渡す最良の方法は何ですか? リロードせずにクエリ文字列をリセットするのは難しいため、クエリ文字列を追加してホスト アプリの URL を変更したくありません。私のアプリケーションは webfarm にあり、IP セッション アフィニティ ベースのロード バランサがあります。現在procセッションで使用していますが、時折失敗することは明らかです。問題外のアウトプロセス セッションを削除した場合、webfarm でこのシナリオを処理する実証済みの方法はありますか?
-------------------------------------------------- -------------- ASP.NET メイン アプリ コンテンツ VirDir-B [親] **________________________________________________________________** TAB1 | TAB2 [iframe1] | [iframe2] { カスタムを編集 | { 顧客を見る VirDir-A } | VirDir A } | |
更新:
さて、すべての VD が同じドメインにあるため、クエリ文字列パラメーターを使用して iframe1 のソースを直接設定することにより、javascript を使用してこの問題を解決しました。
疑似コード:
表示ページ:
var tabContainer=$(parent.document).find('#TABCONTAINERID').control;
var iframe=$(parent.document).find('#TABCONTAINERID').children('#iframe1');
iframe.src="editCust.aspx?id=123"
tabContainer.set_activeTabIndex(0);
しかし、親アプリケーションを制御できなかった場合(別のドメインにある可能性があります)、これがどのように処理されたのか知りたいです。