在弹出的Liferay中刷新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 = '<

我有一个关于刷新从另一个portlet中调用的portlet的快速问题

我在这样的父portlet中调用子portlet

 `<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而不出现此错误吗

亲切问候,, 约翰