0

アイテムのリストを表示するASP.NET3.5Webアプリを作成しています。ユーザーがアイテムを選択したときに、詳細を含む非モーダルポップアップを表示できるようにしたい。複数の詳細ポップアップを同時に表示できるようにしたい。(つまり、ユーザーはアイテムをクリックして詳細を表示し、別のアイテムをクリックして別のポップアップを表示できます。)現在、ポストバック中にRegisterStartupScriptを呼び出して、ページに「window.open(...)」スクリプトを書き込んでいます。 -レンダリングします。もちろん、問題は、これには全ページのポストバックと更新が必要なことです。

これはXMLHttpRequestまたはAJAXの完璧な使用法かもしれないと思いましたが、それを行う方法(またはこれを行うことが可能か賢いかどうか)がわかりません。誰かが私に道を教えてもらえますか?

AJAX Extensionsをインストールしていますが、AJAXControlToolkitを使用したくありません。


編集:いくつかの説明:ユーザーがアイテムを選択すると、カスタムイベントが発生します。サーバー上でこのイベントを処理し、サーバー側のロジックを使用してURLを作成し、RegisterStartupScriptで使用して「window.open(myUrl ...)」スクリプトを作成します。しかし、これを行うためにページ全体をポストバックするのは非効率的であるように思われるので、ページ全体をラウンドトリップすることなく、URLを作成して送り返す単純なサーバー側関数を呼び出すことができるかどうかを知りたいです。

4

3 に答える 3

1

ポップアップの作成はAJAXとはほとんど関係がなく、JavaScriptとはもっと関係があります。こちらのjQueryダイアログライブラリをご覧ください。次に、jQueryのAJAX APIを使用して、サーバーのダーティな作業を行うことができます:)

jQueryダイアログUI

-

BillKonradDevtacular
-Web開発チュートリアル

于 2009-02-09T16:04:00.427 に答える
0

DHTML Window ウィジェットを使用できます。モーダル ウィンドウまたは非モーダル ウィンドウを表示する多くの方法を提供します。また、AJAX にも対応しています。

dhtmlwindow を使用して新しいウィンドウを開くか、dhtmlmodal を使用して新しいモーダル ウィンドウを開くことができます。

もちろん、要件に合わせて編集することもできます。サンプル:

var insWindow = dhtmlmodal.open("insbox", "iframe","UserMaster.aspx?" + queryStr, "User Master", "width=425px,height=500,center=1,resize=0,scrolling=1", "recal");
于 2009-02-09T16:24:15.200 に答える
-1

本当に新しいウィンドウを開く必要がありますか? 絶対位置の DIV または新しいレイヤーを同じウィンドウ内の現在のページの上に開くことは、最近大流行しています。


編集:

ポップアップの数が制限されるとは思いません。最近では、jQuery + jQuery UI などのライブラリを使用して実行できる優れた機能がいくつかあります。これらの DIV/レイヤーを必要なだけ作成して、移動可能にすることができます。 、サイズ変更可能など。実際のポップアップにあり、これらにない唯一のことは、タブパネル/タスクバーに表示されないことです。

はい、メイン ページが開いているウィンドウのサイズに制限されますが、個人的には、ほとんどの人が最大化されたブラウザ ウィンドウで閲覧するため、問題とは思いません。

昔ながらの典型的なポップアップ ウィンドウの実装は間違いなくはるかに簡単ですが、エンド ユーザーのポップアップ ブロッカーの問題も発生します。私の仕事でその問題が発生しました。何らかの理由で証明書認証プロセス中にポップアップを作成する必要があり、Yahoo がツールバーの新しいバージョンをリリースするとすぐに、それは機能しなくなりました)。

于 2009-02-09T16:08:29.887 に答える