我做了链接: View 这是函数 showPopup: -6ren">
gpt4 book ai didi

popup - 在弹出式 Liferay 中显示 portlet

转载 作者:行者123 更新时间:2023-12-02 00:03:36 24 4
gpt4 key购买 nike

我正在尝试显示另一个 portlet(我之前创建的),但弹出窗口是空的。首先,我创建 renderURL:

<liferay-portlet:renderURL var="testPopupURL" portletName="<%=rule.getBannerPortletId() %>" windowState="<%=LiferayWindowState.POP_UP.toString() %>"></liferay-portlet:renderURL>

我做了链接:

<aui:a href="#" onClick="showPopup('${testPopupURL}')">View</aui:a> 

这是函数 showPopup:

    function showPopup(url){
console.log("En el showPopup ");
AUI().ready('aui-dialog', 'aui-io', 'event', 'event-custom', function(A) {
window.myDialog = new A.Dialog({
title: 'Banner',
width: 640,
centered: true
}).plug(A.Plugin.DialogIframe, {
uri: url.toString(),
iframeCssClass: 'dialog-iframe'
}).render();
});
}

我将 liferay-portlet.xml(我想在弹出窗口中打开的 portlet)放入:

<add-default-resource>true</add-default-resource>

portlet 是可实例化的,bannerPortletId 是 porletId。

有什么想法吗?

谢谢

最佳答案

我终于可以显示 portlet 了。我用 javascript 创建了 url:

    var url;
function createRenderURL(portletId) {
AUI().ready('liferay-portlet-url', function(A) {
var renderURL = Liferay.PortletURL.createRenderURL();
renderURL.setName("Banner");
renderURL .setPortletMode("edit");
renderURL .setWindowState("pop_up");
renderURL.setPortletId(portletId);
url = renderURL.toString();
});
}

显示弹出窗口的代码是相同的,但我将 portletId 作为参数传递并调用函数 createRenderURL。

    var url;

function createRenderURL(portletId) {
console.log("en el createRender");
AUI().ready('liferay-portlet-url', function(A) {
var renderURL = Liferay.PortletURL.createRenderURL();
renderURL.setName("Banner");
renderURL .setPortletMode("edit");
renderURL .setWindowState("pop_up");
renderURL.setPortletId(portletId);
console.log(renderURL);
url = renderURL.toString();
});
}

我希望这对某人有用。

关于popup - 在弹出式 Liferay 中显示 portlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19811265/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com