質問

ユーザーコントロールを開発しており、jQueryダイアログ内にasp.netボタンがありますが、ボタンを押しても何も起こりません。サーバー側でボタンクリックイベントを呼び出さないということです。

dlg.parent().appendTo(jQuery("form:first")); 

しかし、それは私にも役立ちませんでした、asp.net UserControl内でこれを実現することは可能ですか? また、ダイアログ内でUpdatePanelを使用できるかどうか疑問に思いますか?

役に立ちましたか?

解決

ボタンをダイアログボタンにして、HiddenButtonのIDを持つページにasp.netボタンを配置し、 display:none;

したがって、ボタンは表示されません。 (Visible =" false"ではないため、ボタンがレンダリングされます)

ダイアログjavascriptで、非表示ボタンをクリックする効果があるボタンを追加します

  jQuery("#dialog").dialog({
        buttons: {
            'ButtonText': function() {
                //save the session
           __doPostBack('<%# HiddenButton.ClientID %>', '')
                jQuery(this).dialog('close');
            }
        }
    });

非表示ボタンにASPクリックハンドラーを追加

<div style="display:none;">
    <asp:Button ID="HiddenButton" OnClick="HiddenButton_Click" ></Button>
<div>

ダイアログボタンがクリックされると、サーバーサイドのClickイベントが発生します

このパターンを常に使用するのに役立つことを願っています

他のヒント

ASP.NETがフォーム内のボタンを見つけられないことと関係があるのではないかと思われます。

jQueryで.liveイベントセットアップを使用します。.liveを使用してダイアログを作成する前にイベントをバインドすると、動作するはずです...

jQueryのライブイベント

document.ready関数で次のような結果になります。


$("#btn").live("click", function(){
  // Do something
});


$("#dialog").dialog({
    ... 
}

同じ問題がありました。私は最終的にダイアログからボタンを引き出し、cssでそれを隠し、ダイアログのcloseイベントからトリガーしました(後でもっときれいにするつもりですが、これは少なくとも問題を示しています)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top