我使用以下代码在Popup窗口上加载WebContent编辑portlet:
<liferay-ui:icon
image="edit"
message="Edit"
url="<%= editUrl %>"
/>
Run Code Online (Sandbox Code Playgroud)
editUrl的值是:
editUrl = "javascript:Liferay.Util.openWindow({
dialog:{
width: 960,
modal:true,
destroyOnClose: true
},
id: '" + liferayPortletResponse.getNamespace() + "',
title: '" + article.getTitle(Locale.UK, true) + "',
uri:'" + HtmlUtil.escapeURL(editPortletURLString) + "'});";
Run Code Online (Sandbox Code Playgroud)
保存或发布内容时,将在弹出窗口中加载portlet.我希望关闭弹出窗口,并使用editURL链接刷新portlet.
仅当编辑成功并且弹出窗口刷新时,您才能从弹出窗口调用以下 javascript 函数:
Liferay.provide(
window,
'closePopUpAndRefreshPortlet',
function(customPopUpId) {
var A = AUI();
A.DialogManager.closeByChild('#' + customPopUpId);
var curPortletBoundaryId = '#p_p_id<portlet:namespace />';
Liferay.Portlet.refresh(curPortletBoundaryId);
},
['aui-dialog','aui-dialog-iframe']
);
Run Code Online (Sandbox Code Playgroud)
解释
将弹出窗口的 提供给 的函数即可关闭弹出id: '" + liferayPortletResponse.getNamespace() + "'窗口。DialogManagercloseByChild
Liferay 定义了一个实用方法来通过 ajax 刷新 portlet,因此您只需将 portlet 传递<div id="p_p_id_MyWCDPortlet_">给该refresh函数即可。
因此,当弹出窗口在成功更新后刷新时,如果您调用该函数,closePopUpAndRefreshPortlet("customPopUpID")它首先会自行关闭,然后刷新<div>包含该 portlet 的父级窗口。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
6775 次 |
| 最近记录: |