0

我想要做的是弹出一个 div,其中包含两个用于反馈的按钮。一个按钮用于取消,另一个按钮用于提交(使用服务器端)。

HTML

<div id="message" style="display:none">
     <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Images/ClearButton.png"
     onclick="ImageButton1_Click1"/>
</div>

JAVASCRIPT

<script type="text/javascript">
    $(document).ready(function () {
        /*$('div#message').dialog({ autoOpen: false })*/
        $('#hlfeedback').click(function () {
            $('div#message').dialog({
                width: 608,
                height: 750,
                modal: true,
                overlay: { backgroundColor: "#000", opacity: 0.5 },
                buttons: {},
                open: function (event, ui) {
                    $(".ui-dialog-titlebar-close").hide();
                }
            });
        });
        $('#ImageButton1').click(function () {
            $('div#message').dialog({
                close: function (event, ui) { $(this).close(); }
            });
        });
    })</script>

Server Side

protected void ImageButton1_Click1(object sender, ImageClickEventArgs e)
{
    //Not working 
}

服务器端根本不工作。以及使用 javascript 的关闭按钮。我想使用服务器端的按钮向数据库提交一个。

4

1 回答 1

1

要使服务器端事件正常工作,您需要将对话框作为标签的子<form runat='server'>标签(通常在每个 aspx 页面上)。

使用 jQuery 创建对话框时,它不会自动添加为 的子级form,因此不会调用您的服务器端代码。

这可以很容易地修复,添加:$(this).parent().appendTo("form"); 到对话框的打开功能,例如:

$('div#message').dialog({
        width: 608,
        height: 750,
        modal: true,
        overlay: { backgroundColor: "#000", opacity: 0.5 },
        buttons: {},
        open: function (event, ui) {
            $(this).parent().appendTo("form");
            $(".ui-dialog-titlebar-close").hide();
        }
});
于 2012-12-26T12:27:42.030 回答