2011-01-29 6 views
0

SimpleModalポップアップ(JQuery)でユーザーコントロールを表示している場合、このユーザーコントロールはデータベースからデータを取得し、レコードを表示します)。ポップアップの内容を作成する方法ポストバックは、表示されたときのみ作成する

問題は、このユーザーコントロールが親ページのすべてのポストバックを非表示にしてもデータを取得できるようにすることです。

ポップアップが表示された場合にのみデータを取得できるのだろうかと思います。

私はVisibleプロパティのfalsePanelの内側にそれを入れて、私はポップアップを開いたときtrueにそれを変更しようとしたが、それはSTILデータベースからデータを取得をPage_Loadを呼びます!

答えて

1

ユーザーがポップアップをアクティブにして、ポップアップに要求から取得した値を入力すると、ajaxリクエストが発生します。

2

これに対処するにはいくつかの方法があります。

1.サーバー側のすべてを実行します。 ajax(旧アトラス)ツールキットのモーダルdilogを使用することができます。それを更新パネルの中に入れてください。トリガーを作成し、そのトリガーでイベントを指定します。これは、dbへの呼び出しを行うときに行われます。それは一度しか起こりませんし、正確にあなたがそれをしたいときにあなたはコントロールするでしょう。

2.クライアントサイドのajaxを使用します。 私は、UpdatePanel(パフォーマンス)の使用に伴うオーバーヘッドが多いので、この方法をお勧めします。 jQuery UI Modal Dialogをそのまま使用し、クライアントサイドイベントを使用して、オープン時にフックします。次に、Webサービスにアヤックスの呼び出しを行うにはどちらかだろう(aspxページ内でホストすることができます)か、に.get操作を行うことができます。

$.ajax({ 
     url: url, 
     data: data, 
     success: success, 
     dataType: dataType 
    }); 

または

$.get('ajax/MyDbRecord.aspx', function(data) { 
     $('.result').html(data); 
     alert('Load was performed.'); 
    }); 

その後、あなたのaspxページ単純にできます:

Response.Write(MyRepository.GetDetail(q => q.ID == 1234).ToString()); Resonse.End();

もちろん、モーダルダイアログにそのデータを単純な文字列として表示するだけで、ビジネス側でオブジェクトを調べる必要がない場合はもちろんです。

ここでは詳細に説明した両方のAPI:あなたが実際にあなたがDBから取得している詳細レコードでカスタム何かをしたい場合は今 http://api.jquery.com/jQuery.get/

、あなたがgetJSONを使用してに見たいと思うかもしれません。ここ より多くの例:

http://viralpatel.net/blogs/2009/04/jquery-ajax-tutorial-example-ajax-jquery-development.html

関連する問題