用户在jquery对话框中进行confr后没有回发

时间:2017-10-27 00:47:50

标签: c# jquery asp.net vb.net

我是jQuery最新闻的人。我需要显示对话框以获取用户响应。如果使用点击确认,我需要在服务器上更新数据库。我找到了示例jQuery dialog Confirm-JSFiddle并遵循了代码。但是,在用户单击确认后,它不会回发到服务器。有人会告诉我如何解决它。

有我的jQuery脚本代码:

           $(document).ready(function() {
               $("#dialog-confirm").dialog({
                   autoOpen: false,
                   modal: true
               });
           });

           $(function() {

               $("#dialog-confirm").dialog({
                   autoOpen: false,
                   modal: true,
                   buttons : {
                       "Confirm" : function() {
                           $(this).dialog("close");
                           return true;        
                       },
                       "Cancel" : function() {
                           $(this).dialog("close");
                           return false;
                       }
                   }
               });

               $("#Button1").on("click", function(e) {
                   e.preventDefault();
                   $("#dialog-confirm").dialog("open");
               });

           });

vb.net上有代码

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim i As Integer = 0
End Sub

aspx页面上有按钮

  <asp:button id="Button1" runat="server"  text="test" visible="true" />

1 个答案:

答案 0 :(得分:0)

您只需要一步即可使用appendTo函数与目标表单绑定来进行回发:

$("#Button1").on("click", function(e) {
    e.preventDefault();
    $("#dialog-confirm").dialog("open");  
    $("#dialog-confirm").parent().appendTo($("form:first"));
});

<asp:Button id="Button1" runat="server"  text="test" visible="true" OnClick="Button1_Click" />

当然,如果您使用动态客户端ID(ClientIDMode="Static"处没有asp:Button属性),则需要使用ClientID而不是按钮的服务器ID :

$("#<%= Button1.ClientID %>").on("click", function(e) {
    e.preventDefault();
    $("#dialog-confirm").dialog("open");
    $("#dialog-confirm").parent().appendTo($("form:first"));
});

或者您可以将appendTo嵌入dialog设置(使用jQuery 1.10及更高版本):

$("#dialog-confirm").dialog({
    autoOpen: false,
    modal: true,
    buttons : {
        "Confirm" : function() {
            $(this).dialog("close");
            return true;        
        },
        "Cancel" : function() {
            $(this).dialog("close");
            return false;
        }
    },
    appendTo: "form" // append this setting
});

如果appendTo无法使用您的网页,请尝试__doPostBack方法(但不保证可以与所有浏览器配合使用):

__doPostBack('<%= Button1.UniqueID %>', '');

类似问题:

jQuery UI Dialog with ASP.NET button postback

jQuery modal form dialog postback problems