在弹出的Liferay中刷新Portlet
我有一个关于刷新从另一个portlet中调用的portlet的快速问题 我在这样的父portlet中调用子portlet在弹出的Liferay中刷新Portlet,liferay,liferay-6,liferay-aui,Liferay,Liferay 6,Liferay Aui,我有一个关于刷新从另一个portlet中调用的portlet的快速问题 我在这样的父portlet中调用子portlet `<liferay-portlet:renderURL portletName="<%= portletID %>"var="testPortletURL" windowState="<%=windowMode%>"/>` `` 并使用liferay.util在弹出窗口中打开它 var url = '<
`<liferay-portlet:renderURL portletName="<%= portletID %>"var="testPortletURL" windowState="<%=windowMode%>"/>`
``
并使用liferay.util在弹出窗口中打开它
var url = '<%= testPortletURL %>';
Liferay.Util.openWindow({
dialog: {
destroyOnHide: true,
centered: true,
height: 600,
modal: true,
width: 750
},
id: '<portlet:namespace/>testPortlet',
title: 'Test',
uri: url
});
var url='';
Liferay.Util.openWindow({
对话框:{
destroyOnHide:没错,
对,,
身高:600,
莫代尔:是的,
宽度:750
},
id:'testPortlet',
标题:"测试",,
uri:url
});
子portlet有几个表单,根据用户的操作,可能需要刷新它。我正在刷新portlet,如下所示:
Liferay.provide(window, 'doRefresh', function() {
console.log('<%=themeDisplay.getPortletDisplay().getId()%>');
var tmp = "#p_p_id_"+"<%= themeDisplay.getPortletDisplay().getId() %>"+"_";
Liferay.Portlet.refresh(tmp);
},
['aui-base']
);
Liferay.provide(窗口'doRefresh',函数(){
控制台日志(“”);
var tmp=“#p#p#u id_u+”+“”+“u”;
refresh(tmp);
},
['aui-base']
);
如果portlet本身作为一个独立的portlet使用,而不是从另一个portlet调用,那么这种方法可以很好地工作。但是,当从另一个portlet中调用portlet时,刷新操作将不起作用,并显示以下消息
您没有访问此portlet所需的角色
有人知道我如何在对话框窗口中安全地刷新portlet而不出现此错误吗
亲切问候,,
约翰