2012-01-25 13 views
0

サーバーサイドのイベントを持ついくつかのASPコントロールを含むjQuery UIモーダルダイアログの問題を解決しようとしています。ダイアログ内のASPコントロールがクリックされるたびに、モーダルダイアログが閉じます。これらのASPコントロールは、モーダルと対話するために実行するだけのサーバー側のロジックを持っています。ダイアログ内のaspボタンをクリックすると、jQueryモーダルダイアログが閉じないようにするにはどうすればよいですか?

フォームにダイアログを追加するロジックを追加しました(下記参照)。 appendToは、私のソリューションの中で、ポストバックのコントロールを持つ他のダイアログでうまく機能します。

このモーダルの唯一の違いは、Divがユーザーコントロール内に含まれていることです。以下は

ダイアログを開くために使用するスクリプトです:

var $splitdialog; 

// render html using web service, then GetSplitViewComplete will open the modal dialog 

openDistributedReferenceCodesSplitModalDialog = function (splitdialogDivId, EntityType, EntityId, AllowAdd, AllowAdhoc) { 
    $splitdialog = $("#" + splitdialogDivId); 
    $splitdialog.empty(); 
    WebServices.DistributedReferenceCodesService.GetSplitView(EntityType, EntityId, AllowAdd, AllowAdhoc, GetSplitViewComplete); 
}; 

GetSplitViewComplete = function (result) { 
    // neccessary to support postback for button, dropdowns, etc on modal 
    $splitdialog.append(result.InnerHtml); 
    $splitdialog.dialog({ width: 800 }, { height: 'auto' }, { modal: true }); 
    $splitdialog.parent().appendTo($("form:first")); 
}; 

あなたの提案が高く評価されています。

+0

は、あなたが仕事をするダイアログとの違いについての詳細を提供することができ...このような何かを試してみてください。どんな種類のコントロールが使われていますか? ASP.NETコントロール、Ajaxツールキットコントロール、JQuery UIコントロール –

+0

このダイアログとの違いは、ダイアログを開くために使用されるdivがユーザーコントロール内にあることです。ユーザーコントロールはリストビュー内で繰り返されます。私は、モーダルとして開くdivの一意のIDを含むボタンにスクリプトをアタッチしてjQueryモーダルダイアログを開きます。ありがとうございました。 – ghoh

+0

申し訳ありませんが、ここからお手伝いできません。一緒に働くだけで十分ではありません。 ajax化されていないサーバーコントロールとajaxの振る舞いを混ぜるとき、これらの問題を見つけることは常に困難です。私はそれができないとは言いませんが、私は可能な限りこれを避けようとしています。 –

答えて

0

私はあなたがモーダルポップアップが閉じないようにUpdatePanelを使いたいと思っています。

http://patelshailesh.com/index.php/why-does-modalpopup-close-on-postback

+0

ありがとうございますが、これでこの問題は解決されません。 jQueryモーダルダイアログを開くために使用されるdivは、ユーザコントロールに存在します。モーダルダイアログに表示される内容は、Webサービス経由でレンダリングされる別のユーザーコントロールです。モーダルを閉じる前に処理する必要があるサーバーサイドのイベントを持つASPコントロールは、更新パネル内に含まれています。 – ghoh

関連する問題