谁能告诉我如何在 Liferay 中动态更改页面布局。让我们假设我们有一个带有布局 2 列 (50/50) 的页面,并且这两个列都有 portlet。如果用户单击任何 portlet,我想将页面布局更改为 2 列 (70/30)。
问问题
2111 次
3 回答
1
我从来没有试过,但你试过检查LayoutLocalServiceUtil.updateLayout()
吗?
那应该对你有帮助。如果您要创建新页面,请LayoutLocalServiceUtil.addLayout()
使用updateLayout()
.
获取布局,然后更新它。
layout = LayoutLocalServiceUtil.getFriendlyURLLayout(groupId, false, friendlyURL);
于 2013-02-13T03:32:15.767 回答
0
添加到 - 如提供 -
layoutId = LayoutLocalServiceUtil.getFriendlyURLLayout(groupId, false, friendlyURL);
传递新页面的friendlyURL,如果它是公共页面,则为false,否则为私有,并确保您已将一些布局应用于新页面(例如- 70/30)
使用此 layoutId -
" windowState="<%= WindowState.NORMAL.toString()%>">
将 portletId 提供给 portletname 字段。
于 2013-02-19T06:04:51.280 回答
0
下面是来自布局模板的示例 html 部分...
<div class="portlet-layout">
<div class="aui-w70 portlet-column portlet-column-first" id="column-2">
$processor.processColumn("column-2", "portlet-column-content portlet-column-content-first")
</div>
<div class="aui-w30 portlet-column portlet-column-last" id="column-3">
$processor.processColumn("column-3", "portlet-column-content portlet-column-content-last")
</div>
</div>
如果你仔细检查一下,有一些类描述了 div 的宽度,在我的示例中,aui-w70 用于宽度 70%,而 aui-w30 用于 30%。我相信你也会在你的布局中得到类似的东西。如果您可以根据需要在所需事件中更改班级名称,那么您很高兴......试一试......
于 2013-02-26T11:20:35.077 回答