0

我目前正在加载一个带有视图的对话框。此视图处理正在购买的产品的插入和编辑。

我遇到的问题是当我保存我的产品时,我需要关闭对话框并刷新原始页面上的网格。当我尝试这样做时,我试图在我的父母中找到对话框并触发关闭事件。到目前为止,我在父级中找到对话一直无效。我已经能够找到网格并强制刷新。

我的问题是,有没有办法从对话框中触发关闭?顺便说一句,我不确定这是否是问题的一部分,但我使用的是完整视图而不是部分视图。

任何帮助,将不胜感激。谢谢。

最诚挚的问候,乍得

编辑:这是我的代码。

查看(父页面)

...
<div id="divPOProduct">
</div>

<script type="text/javascript">
    var selectedIds = [];

    $(document).ready(function () {
            $("#divPOProduct").dialog({
                height: 500,
                width: 700,
                modal: true,
                autoOpen: false,
                draggable: false,
                resizable: false,
                open: function () { },
                close: function (event, target) {
                        alert("Here");
                        return false;
                }
            });

   //"Add" button
            $("#add-poproduct").click(function (e) {
                e.preventDefault();

                var link = '@(Url.Action("POProductAddPopup", "PurchaseOrder", new { purchaseOrderId = Model.Id }))';
                //OpenWindow(link, 600, 500, true);

                $("#divPOProduct").load(link);
                $("#divPOProduct").dialog("open");


                return false;
            });

...

查看(对话框)

$("#save").click(function (e) {
        var validationTest = CheckValidation();

        if (validationTest) {
            var model = {
                ...
            };
            $.getJSON('@Url.Action("SavePurchaseOrderProduct", "PurchaseOrder")', model, function (result) {
                if (result) {
                    //$(this).closest('.ui-dialog-content').dialog('close')
                    window.parent.$("divPOProduct").dialog("close");
                    //$(window.parent).find("divPOProduct").dialog("close");
                }
            });
            return false;
        }
    });
});

您将在 if 语句中看到的三个尝试是我迄今为止所尝试的。我现在可以找到父级和 div,但找不到对话框。顺便说一句,从结果返回的所有结果都是真/假。

4

2 回答 2

1

enter code here嗯试试这个:

 window.parent.$("#divPOProduct").dialog("close");

或详细替代:

 window.parent.jQuery("#divPOProduct").dialog("close");

或替代

 window.parent.document.jQuery("#divPOProduct").dialog("close");

另一种选择:

 window.opener.jQuery("#divPOProduct").dialog("close");

另一种尝试:在父窗口上创建一个新的 JavaScript 函数:

function closeMyDialog(){
    alert("closing my dialog");//to debug call
    jQuery("#divPOProduct").dialog("close");
}

然后使用:(在子窗口上)

  window.parent.closeMyDialog();

或者

  window.parent.closeMyDialog
于 2013-01-10T19:38:02.240 回答
0

目前,我的解决方法是刷新父页面。这不是我想要做的,但直到我可以解决它,我唯一的解决方案。 感觉肮脏讨厌使用这种方法。

于 2013-01-17T19:36:13.323 回答