我有一个jQuery UI对话框工作在我的ASP。NET页面:

jQuery(function() {
    jQuery("#dialog").dialog({
        draggable: true,
        resizable: true,
        show: 'Transfer',
        hide: 'Transfer',
        width: 320,
        autoOpen: false,
        minHeight: 10,
        minwidth: 10
    });
});

jQuery(document).ready(function() {
    jQuery("#button_id").click(function(e) {
        jQuery('#dialog').dialog('option', 'position', [e.pageX + 10, e.pageY + 10]);
        jQuery('#dialog').dialog('open');
    });
});

我的div。

<div id="dialog" style="text-align: left;display: none;">
    <asp:Button ID="btnButton" runat="server" Text="Button" onclick="btnButton_Click" />
</div>

但是btnButton_Click从来没有被调用…我怎么解决这个问题呢?

更多信息:我添加了这段代码来移动div到窗体:

jQuery("#dialog").parent().appendTo(jQuery("form:first"));

但还是没有成功……


当前回答

上面肯的回答对我很有用。这个公认答案的问题在于,它只适用于页面上只有一个模态的情况。如果你有多个情态动词,你需要在初始化对话框的时候在“open”参数中做,而不是在初始化对话框之后。

open: function(type,data) { $(this).parent().appendTo("form"); }

如果您按照第一个接受的答案对多个情态句进行处理,那么您将只会得到页面上的最后一个情态句正确地触发回发,而不是所有回发。

其他回答

ASP。在ASP. NET中使用UseSubmitBehavior="false"即可。NET按钮:

<asp:Button ID="btnButton" runat="server"  Text="Button" onclick="btnButton_Click" UseSubmitBehavior="false" />       

参考:按钮。UseSubmitBehavior财产

正确移动对话框,但是你应该只在打开对话框的按钮中这样做。 下面是jQuery UI示例中的一些额外代码:

$('#create-user').click(function() {
    $("#dialog").parent().appendTo($("form:first"))
    $('#dialog').dialog('open');
})

在对话框中添加你的asp:按钮,它运行得很好。

注意:您应该将<button>更改为<input type=button>,以防止单击“创建用户”按钮后回发。

你离解很近了,只是拿错了对象。应该是这样的:

jQuery(function() {
    var dlg = jQuery("#dialog").dialog({
                         draggable: true,
                         resizable: true,
                         show: 'Transfer',
                         hide: 'Transfer',
                         width: 320,
                         autoOpen: false,
                         minHeight: 10,
                         minwidth: 10
                     });
    dlg.parent().appendTo(jQuery("form:first"));
});

这对我来说是最明确的解决方案

var dlg2 = $('#dialog2').dialog({
        position: "center",
        autoOpen: false,
        width: 600,
        buttons: {
            "Ok": function() {
                $(this).dialog("close");
            },
            "Cancel": function() {
                $(this).dialog("close");
            }
        }
    });

dlg2.parent().appendTo('form:first');
$('#dialog_link2').click(function(){
    dlg2.dialog('open');

dlg2中的所有内容都可以插入到数据库中。不要忘记更改对话框变量以匹配您的。

准确的解是;

$("#dialogDiv").dialog({ other options...,
    open: function (type, data) {
        $(this).parent().appendTo("form");
    }
});