使用jquery重新加载父窗口

时间:2011-10-27 12:11:26

标签: asp.net-mvc-3 jquery-ui

我有一个父窗口,其中包含产品列表。通过单击其中一个产品,它将使用jquery调用popUpWindow 代码:

   $('a.modalDlg').click(function () {
     var urlPath= "/controllerName/actionName";
     var title="sample";
     var features="width = 400, height = 150,scrollbar=no";
     window.open(urlPath, $title, $fea);
   });

在子窗口中,单击保存按钮后 - >子窗口将关闭,父窗口将被重新加载。

     window.opener.location.reload();
     window.close();

此后,插入的值将显示在父窗口中。

但是,而不是重新加载整个页面(“window.opener.location.reload()”)。  是否有可能触发包含产品列表的控制器中的特定方法?????? 例如:

    public ActionResult DisplayProductDetails()
       {
          //some code
         return view();
       }

因此,它将在父窗口中显示新插入的产品&它可以提供更好的外观,而不是重新加载整个页面。 (就像在HTML中重新加载帧一样)。

Pl帮我解决了这个问题。

先谢谢。

2 个答案:

答案 0 :(得分:0)

父窗口

中注入JS方法
<script type="text/javascript">
window.updateWithNewData = function () {
    $.ajax({
        url: "url/to/your/partial/view/that/returns/new/data",
        success: function(data) {
            $("#dataContainer").append($("<div></div>").html(data));
        }
    });
}
</script>

子窗口

中调用此方法
window.opener.updateWithNewData();
window.close();

OR

您可以通过提供JSON对象作为updateWithNewData的参数将请求保存到服务器,该参数是使用您的弹出窗口和您的给定数据构建的。并使用父窗口上传递的数据。

希望这有帮助!

答案 1 :(得分:0)

在Chicld窗口中,调用Controller方法后只调用close方法 C#包含以下代码

[HttpPost]
public ActionResult DisplayProductDetails()
{
     //some code
     return view("ViewName",ModelNameObject);
}

在JQuery Ajax调用中,使事件触发如下

$.ajax({
url:'UR URL to here'
dataType :'text json'
Method:Post
Success:function(data)
{
    $("#ParenetDivID").html(data);
}
});