我有一个父窗口,其中包含产品列表。通过单击其中一个产品,它将使用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帮我解决了这个问题。
先谢谢。
答案 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);
}
});