如何在jquery弹出消息后执行服务器端点击事件

时间:2014-10-20 04:48:51

标签: c# jquery asp.net

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">
    $("[id*=btnModalPopup]").live("click", function () {
        $("#modal_dialog").dialog({
            title: "jQuery Modal Dialog Popup",
            buttons: {
                ok: function () {
                    $(this).dialog('close');
                    __doPostBack('btnModalPopup', 'OnClick');
                    //document.getElementById("btnModalPopup").click();
                }
            },
            modal: true
        });
        return false;
    });
</script>
<body>
    <form id="form1" runat="server">
    <div id="modal_dialog" style="display: none">
        This is a Modal Background popup
    </div>
    <asp:Button ID="btnModalPopup" runat="server" Text="Show Modal Popup" ClientIDMode="static"  OnClick="btnModalPopup_Click" />

</form>
</body>

上面代码显示J查询弹出消息。工作正常。但是在弹出消息之后我需要执行服务器端代码 如果我从脚本中删除Return False它执行服务器端代码但弹出消息消失。它应该执行弹出窗口的确定按钮后单击

请帮忙......

2 个答案:

答案 0 :(得分:0)

服务器端方法

[System.Web.Services.WebMethod]
public static string GetCurrentTime(string name)
{
    return "Hello " + name + Environment.NewLine + "The Current Time is: "
        + DateTime.Now.ToString();
}

客户端

function ShowCurrentTime() {
    $.ajax({
        type: "POST",
        url: "CS.aspx/GetCurrentTime",
        data: '{name: "' + $("#<%=txtUserName.ClientID%>")[0].value + '" }',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: OnSuccess,
        failure: function(response) {
             //do
        }
    });
}
function OnSuccess(response) {
    btnModalPopup_Click();
}

Call ASP.Net Page Method using jQuery AJAX Example

答案 1 :(得分:0)

ClientIdMode='static'添加到您的按钮,从您的事件处理程序返回false并在您的OK按钮回调中尝试此操作

 OK: function() {
      $(this).dialog('close');
      __doPostBack('btnModalPopup','OnClick');
 }