【问题标题】:Close a jQuery dialog, from inside a user control从用户控件内部关闭一个 jQuery 对话框
【发布时间】:2013-01-16 11:44:07
【问题描述】:

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

这是完成工作的 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”网络表单包含一个带有“确定”和“取消”ASP 按钮的用户控件。 “确定”按钮只是对原始列表视图中的相关行执行删除操作。

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

【问题讨论】:

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


    【解决方案1】:
        $('#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>
    

    【讨论】:

    • 我不想使用对话框的默认按钮。实际上,我说我正在使用 ASP 按钮,它们执行进一步的服务器端操作。我希望这些按钮能够关闭对话框。
    猜你喜欢
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-11
    • 2014-07-11
    • 1970-01-01
    • 2016-05-12
    相关资源
    最近更新 更多