1

項目を削除していて、LINQ 関連のすべての削除を行う前に、確認ウィンドウをポップアップ表示したいと考えています。

私が望むのは、モーダル確認ウィンドウに読み込まれてから、サーバー側の機能を実行することです。

ページ上のボタン:

<input type="button" onclick="deleteConfirmation();" value="Eyða korti" id="btnDelete"/>

javascriptは基本的にjquery-uiサンプルページから。ボタンいらない

function deleteConfirmation() {

    $(".confirmation").dialog({
            resizable: false,
            height: 350,
            modal: true,
    });
}

モーダル ウィンドウに読み込むマークアップ:

<div class="confirmation" style="display:none;">
Do you really want to delete...
<asp:Button ID="btnDelete" runat="server" Text="Delete" OnClick="btnDelete_Click" />
<input type="button" value="Cancel" class="button" />

言うまでもなく、OnClick イベントは発生しません。目的の機能を実現するにはどうすればよいですか。

編集:別のことも試しました

ダイアログ内にボタンを配置し、true/false を返します次に、サーバー側のコードが実行されるが、ポップアップがユーザーの入力を待機しないため、ASP ボタンに onclientclick="return deleteConfirmation()" を設定します。 .

4

2 に答える 2

3

デフォルトでは、jQuery ダイアログは dom 要素を複製し、body の最後に配置します。

これは form タグの外側にあります。

form タグの外側にあるため、asp.net はこれらのイベントを受け取りません。

dom をフォームに戻す必要があります。このようなもの:

function deleteConfirmation() {

    $(".confirmation").dialog({
            resizable: false,
            height: 350,
            modal: true,
    });

    //dialog put the asp elements outside form, bring it back

    $(".confirmation").each(function() { 
      var popup = $(this); 
      popup.parent().appendTo($("form:first")); 
    });

    //asp.net has its precious elements back into the form tag.

}
于 2012-07-05T11:25:06.630 に答える