2009-04-07 10 views
3

私は入れ子になったjqueryモーダルを持っています。Modal1 & modal2には両方ともupdatePanelsが含まれています。パネルを更新するにはjavascriptを使用しています:jqueryモーダルがフルページを開く

var prm = Sys.WebForms.PageRequestManager.getInstance(); 
prm._doPostBack('UpDateLookUp',''); 

UpDateLookUpはmodal1のupdatePanelのIDです。 Modal1にはupdatePanelにあるリンクがmodal2に含まれています。 Modal1 updatePanelは、modal1を使用しているときにはうまくいくパネルの外にある検索条件(Find)ですが、modal2(wpdatePaneltooを持っています)を開いてmodal1に戻ると、Find modal2が全ページを開き、それは閉じた&はmodal1に返されました。 modal2を開いたリンクをクリックすると、すべてがうまくいきます。別のボタンを選択した場合にのみ発生します。

私はjqueryを使い慣れていますので、助けてください。これは私たちの店が行く方法です。

+4

申し訳ありませんが、これは意味がありません。問題をよく言い換えてみてください。また、より多くのコードを表示してみてください。これはasp.netのものですか? –

+3

これはモデルのことですよね? 「モーダル」は全く異なる意味を持っています。 –

+0

またjQueryコードを投稿する –

答えて

0

ここには2つまたは3つのものがあります。

function pageLoad(sender, args) 
{ 
    if (args.get_isPartialLoad()) 
    { 
     //Re-hook code here 
    } 
} 

をか使用:まず、あなたがしたいと思うものは何でも、あなたのAJAXポストバックでは消えているに引っ掛けているコントロール場合は、すべてのページのリロードには、以下の使用しているとき、あなたのイベントハンドラを再フック。イベントフックを追加する$(document).ready()関数のlive()関数この機能については、JQuery UI's API siteに詳しく記載されています。

また、ポストバック(アニメーションが完了する前に変更されないようにする)の前に何かを非表示にしたい場合は、.Promise()。Done()関数を使用してください:

$("#Detail").fadeOut().promise().done(function() 
{ 
    __doPostBack('<%= UpdatePanel1.ClientID %>', ''); 
}); 

最後に、ポストバックはその結果を表示するために完了したときに発生するアニメーションを使用したとき、あなたはそのようなpageLoad機能でアクションを可能にしますブール変数と組み合わせてこのすべてを使用することができます。

var ShowDetailsOnLoad = false; 

function pageLoad(sender, args) 
{ 
    if (args.get_isPartialLoad()) 
    { 
     if (ShowDetailsOnLoad) 
     { 
      $("#Detail").fadeIn(); 
      ShowDetailsOnLoad = false; 
     } 

     $('DetailVisMaker').click(function() 
     { 
      $("#Detail").fadeOut().promise().done(function() 
      { 
       __doPostBack('<%= UpdatePanel1.ClientID %>', ''); 
       ShowDetailsOnLoad = true; 
      }); 
     }); 
    } 
} 

div、HTML、& UpdatePanelが正しく設定されています。このコードは詳細divを表示し、ユーザーがその中のリンクをクリックすると、詳細セクションを消してポストバックを実行し、ポストバックが完了したらフェードインします。

関連する問題