0

ASP ボタン (btnRejectAll) クリック イベントでモーダル確認ダイアログを表示したいのですが、ユーザーがモーダル ダイアログで [OK] を選択したら、ボタン "btnRejectAll" の OnClick サーバー側イベントを発生させる必要があります。次のコードは、クリック時にモーダル確認ダイアログを表示しますが、[OK] ボタンをクリックすると、サーバー側のイベントが発生しません。誰でもこれで私を助けることができますか?

これが私のコードです。

<script language="javascript" type="text/javascript">

    $(function() {


        $("#dialogReject").dialog({
            autoOpen: false,
            height: 300,
            width: 350,
            modal: true,
            buttons: {
                "Reject": function() {
                    $(this).dialog("close");
                    return true;
                },
                Cancel: function() {
                    $(this).dialog("close");
                    return false;
                }
            }
        });

        $("#btnRejectAll").click(function(event) 
        {
            event.preventDefault();

            $("#dialogReject").dialog("open"); 
        });


    });

<asp:Button ID="btnRejectAll" runat="server" Text="Reject All" OnClick="btnRejectAll_OnClick" />
4

2 に答える 2

0

をクリックするとデフォルトのアクションbtnRejectAllが実行されなくなりますが、「拒否」アクションに対してアクションを呼び出すことはありません。私はASP.NETに精通していませんが、マークアップの外観から、への呼び出しをキャンセルしているように見えますbtnRejectAll_OnClick。これがJavaScript関数の場合は、次のように実行できます。

"Reject": function() {
             $(this).dialog("close");
             btnRejectAll_OnClick();
             return true;
          },

そうでない場合(そしてそうではないと私は思う)、それはおそらくフォームの送信をトリガーしている。したがって、代わりにこれを行うことができます:

"Reject": function() {
             $(this).dialog("close");
             $('#form').submit();
             return true;
          },
于 2011-04-15T16:02:26.760 に答える
0

ダイアログの確認時にボタンのサーバー側イベントをトリガーする方法を見つけました。これがコードです。

function ConfirmReject(detailId) {

        var leaveId = $("#hdnLeaveReqId").val();



        $("#dialogReject").dialog({
            autoOpen: true,
            height: 300,
            width: 350,
            modal: true,
            buttons: {
                "Reject": function() {
                    $.ajax({
                        type: "POST",
                        url: "LeaveRequestForm.aspx/RejectLeave",
                        data: "{'LeaveReqId':'" + leaveId + "', 'detailId':'" + detailId
                                + "', 'rejectReason':'" + $("#txtRejectReason").val() + "'}",
                        dataType: 'json',
                        contentType: "application/json; charset=utf-8",
                        success: function(msg) { location.reload(); }
                    });

                    $(this).dialog('close');
                },
                Cancel: function() {
                    $(this).dialog("close");
                }
            }
        });

        return false;
    }

 <asp:Button ID="btnRejectAll" runat="server" Text="Reject All" 
                        OnClientClick="return ConfirmReject(0);" />

CodeBehind クラス:

<WebMethod()> _
Public Shared Function RejectLeave(ByVal LeaveReqId As Integer, ByVal detailId As Integer, ByVal rejectReason As String) As String

    'Do Something here

    Return "success"

End Function
于 2011-04-18T13:24:05.053 に答える