4

フォーク、jQueryを使用したASP.NETポップアップダイアログ:ダイアログを閉じてポストバックする方法

私はかなり複雑なサイトで作業しています。いくつかのコントロールを含む更新パネルがあります。コントロールの1つがクリックされると、jQueryダイアログボックスが開きます。

ダイアログボックスが閉じると、更新パネルにその表示を変更するように通知する必要があります。これを行うには、更新パネルにポストバックする必要があります。

このダイアログボックスには、接続できる便利なコールバックイベントがあります。しかし、ここに事があります。ダイアログを操作するjavascriptはすべて別の.jsファイルにあります。私はそれを別々にしておきたい。したがって、ポストバックを行うコードは、.jsファイルにあるか、.jsファイルの一部のメソッドにパラメータとして注入されます。

どうすればいいですか? .jsファイルメソッドに渡すものは何ですか?

多くのありがとうございます。

+0

フックイン。それらの関数を接続して、最初にチェックしてください:if(typeof(cbFncClose)=== 'function')cbFncClose(); – rkw

答えて

3

最近この問題を解決しなければなりませんでした。私は問題を解決するための一般的な機能を持っています。

  • 外部UpdatePanel又は内に隠さasp:buttonを入れAsyncPostBackTriggerとして設定します。
  • 必要に応じてItemDataBoundからjs関数を呼び出して、asp:buttonClientIDを渡します。
  • js関数は、 "OK"または何を設定したとしても、buttonTxtに渡されたボタンのclickイベントを呼び出します。ボタンをクリックします。
  • ボタンがbutHidden_ClickUpdatePanelまたはコールUpdate内にある場合には、自動的にUpdatePanel.Updateを扱うことができます。

マークアップ:

<asp:UpdatePanel runat="server" ID="UpdatePanel1"> 
    <ContentTemplate> 
    <asp:button id="btnHidden" style="display:none" runat="server" onclick="btnHidden_Click"/> 
    </ContentTemplate> 
</asp:UpdatePanel> 

スクリプト:あなたが必要とするダイアログボックスから各メソッドのコールバック関数を受け取るためのjsファイルで機能を拡張することができ

function showjQueryUIDialogOkBtnCallback(buttonToClick, dialogSelector, buttonTxt, isModal, width, height) 
    { 
     var buttonOpts = {}; 
     buttonOpts[buttonTxt] = function() { 
      $("#" + buttonToClick).trigger('click'); 
     }; 

     buttonOpts['Cancel'] = function() { 
      $(this).dialog("close"); 
      $(this).dialog('destroy'); 
     } 

     $(dialogSelector).dialog({ 
      resizable: false, 
      height: height, 
      width: width, 
      modal: isModal, 
      open: function (type, data) { 
       $(this).parent().appendTo("form"); //won't postback unless within the form tag 
      }, 
      buttons: buttonOpts 

     }); 

     $(dialogSelector).dialog('open'); 

    } 
+0

非常に独創的!ありがとうございました!私はスクリプトでクリックされるだけの隠されたボタンを持っていることに熱心ではなかったが、ポストバックと更新パネルの複雑さと、これが最も信頼できる解決策であることがわかった。再度、感謝します! –

+1

それは素晴らしい作品です!最後に!これを動作させるには2日間かかりました(バイバイとGoogleサーフィンで)。投稿された応答コードが動作してくれてありがとう。 – fletchsod

関連する問題