2011-07-13 26 views
1

私はxyzという名前の部分的なビューを持っていて、さまざまな機能を実装するボタンがたくさんあります。jQueryモーダルダイアログでpartialviewボタンのイベントを取得する方法

$('#dialog').dialog({ 
     autoOpen: false, 
     width: 700, 
     resizable: false, 
     modal: true, 
     open: function (event, ui) { $(this).load('<%=Url.Action("PushButton","Body",new {Parm="text",Parm1="Value"}) %>'); }, 
     position: 'top' 
    }); 

jQueryモーダルダイアログボックスでこの部分図XYZを開きます。 partialview XYZにいくつかのボタンがあります。イベントを明示的に起動する方法がわかりません。 Partialviewで作成されたボタンをクリックしてダイアログボックスを閉じる場合と同様です。

答えて

1

ロードが完了したらボタンイベントを配線する必要があります。あなたに通知するためにコールバックを追加することができます:http://api.jquery.com/load/

+0

uは私に使用することのために任意のデモを提供することができますボタンイベント –

0

私は同じ問題がありました。私は部分的な見解を独立させ、Ajaxを使って提出したい。これは、ユーザーコントロールの作成と似ています。

私は現在、パーサービューからイベントを聴くためにパブリッシャー/サブスクライバのメカニズムを使用する予定です。親はこのイベントを聞いてダイアログボックスを閉じることができます。

私はBen Alman's Pub/Sub gistに出くわしました。

JavaScriptのオブザーバパターンのもう1つの良い記事はLearning JavaScript Design Patterns, The Observer Patternです。ここで

0

はloadイベントのコールバック用のコードです:

$('#dialog').dialog({ 
     autoOpen: false, 
     width: 700, 
     resizable: false, 
     modal: true, 
    open: function (event, ui) { $(this).load('<%=Url.Action("PushButton","Body",new {Parm="text",Parm1="Value"}) %>', function(){ 
     $("#buttonId").click(function(){ 
      //Stuff you want to do with the button here 
     }); 
    }); }, 
     position: 'top' 
    }); 

あなたにも、この内部document.readyを行うことができます。

$(document).on('click', '#idOfControlInsideDialog', function() { 
     //Stuff you want to do here 
}); 
関連する問題