如何在jquery确认对话框中使用回调

时间:2012-07-14 06:52:40

标签: javascript jquery asp.net ajax

Javascript代码

  function btnCancelClick()
                {
                    $("#dialog:ui-dialog").dialog("destroy");

                    $("#dialog-confirm").dialog({
                        resizable: false,
                        height: 140,
                        width: 400,
                        modal: true,
                        buttons: {
                            "Yes": function ()
                            {                       
                                $(this).dialog("close");
                                      //Yes callback
                            },
                            No: function ()
                            {                       
                                $(this).dialog("close");
                                    //No callback
                            }
                        }

                    });             
                }

Aspx代码

 <div class="demo">
        <div id="dialog-confirm" title="Do you want to cancel the appointment?">
        </div>
    </div>

     <asp:Button ID="btnCancel" runat="server" Text="Cancel" CssClass="cssbutton"
                                        OnClientClick="return btnCancelClick();" OnClick="btnCancel_Server_Click" />
<asp:UpdatePanel ID="updatePanelTable" runat="server">
                        <ContentTemplate>
.
.
.

</ContentTemplate>
<Triggers>
                            <asp:AsyncPostBackTrigger ControlID="btnCancel" EventName="Click" />
                        </Triggers>
                    </asp:UpdatePanel>

服务器端代码:

protected void btnCancel_Server_Click(object sender, EventArgs e)
    {
        //Server side code.
    }

我使用jquery对话框显示确认框。当点击按钮时,它总是触发按钮的服务器端事件。如果我点击否则返回false,点击是,我必须触发服务器端事件。我搜索谷歌他们告诉我使用回调,我不知道如何使用回调这种东西。

1 个答案:

答案 0 :(得分:0)

由于每当用户回答“是”或“否”时您都可以进行回叫,您可以这样:

function btnCancelClick()
{
    $("#dialog:ui-dialog").dialog("destroy");
    $("#dialog-confirm").dialog({
        resizable: false,
        height: 140,
        width: 400,
        modal: true,
        buttons: {
           "Yes": function ()
           {                       
               $(this).dialog("close");
               //Yes callback
               callback();
           },
           No: function ()
           {                       
               $(this).dialog("close");
               //No callback
               callback();
           }
       }
   });

   function callback() {
       // whatever needs to be done once the user choose Yes or No
   }
}