从用户控件内部关闭jQuery对话框

时间:2013-01-16 11:44:07

标签: javascript jquery asp.net jquery-ui modal-dialog

我有一个用户控件,包括一个列表视图,其中包含一个弹出jQuery对话框的超链接(LnkDelete)。

这是执行工作的JavaScript代码

$('#LnkDelete').live('click', function (e) {
            var page = $(this).attr("href");
            var $dialog = $('<div></div>')
                .html('<iframe style="border: 0px;" src="' + page + '" width="100%" height="100%"></iframe>')
                .dialog({
                    autoOpen: false,
                    modal: true,
                    height: 200,
                    width: 600,
                    title: "Are you sure you want to delete ...?"
                });
            $dialog.dialog('open');
            e.preventDefault();
        });

这是将“DeleteBranch”网络表单打开为对话框的超级链接:

<asp:HyperLink ID="LnkDelete" runat="server" NavigateUrl='<%# Eval("ID", "~/Personnel/DeleteBranch?Id={0}") %>' ClientIDMode="Static" CssClass="button-delete" />

“DeleteBranch”网页表单包含一个“Ok”和“Cancel” ASP按钮的用户控件。 “确定”按钮只是执行原始列表视图中相关行的删除操作。

问题是: 如何使“取消”按钮关闭弹出窗口?

1 个答案:

答案 0 :(得分:2)

    $('#LnkDelete').live('click', function (e) {
        var page = $(this).attr("href");
        var $dialog = $('<div></div>')
            .html('<iframe style="border: 0px;" src="' + page + '" width="100%" height="100%"></iframe>')
            .dialog({
                autoOpen: false,
                modal: true,
                height: 200,
                width: 600,
                title: "Are you sure you want to delete ...?",
                buttons: [
                {
                    text: 'OK',
                    click: function() { /*Your delete operation*/ }
                },
                {
                    text: "Cancel",
                    click: function() { $dialog.dialog('destroy'); }
                }
               ]
            });
        $dialog.dialog('open');
        e.preventDefault();
    });

正如您所说,如果您使用 ASP 按钮,请将该按钮设为ID,如btn_cancel并添加以下脚本:

<script lang='javascript'>
$(document).ready(function(){
    $('#btn_cancel').click(function(){
        $dialog.dialog('destroy');
    });
});
</script>