我是新手。所以,我只是想解释一下我的场景。
实际上我的网页上有两个portlet -一个在左侧,另一个在右侧:
- 左侧portlet包含两个超链接说demo1 &以及接下来。
- 我有另外两个portlet说demo1Portlet &demo2Portlet。 将显示"demo1Portlet",而不是右侧portlet违约。
- 现在我要做的是,如果我点击demo2链接然后,右边portlet将改变,它将显示"demo2Portlet",如果我单击在demo1链接上,它将在右侧显示"demo1Portlet"。
有谁知道我怎样才能完成这个任务吗?
请尽快回复我。
我是新来的liftray,所以我不知道这是否可以通过IPC或没有它来实现。无论如何,请解释一下。
谢谢。
有几种不同的方式可以让portlet相互通信。大多数都包含在IPC和后代页面的文档中。
在您的情况下,您应该真正查看客户端页面:
和你的基本结构
<a href="javascript:void(0)" class="comm-demo">demo[number]</a>
你应该在"发送器portlet"上有这样的JS:
// you may need to have jQuery instead of $. Liferay may have its own
// $ function which jQuery shouldn't mess with.
$( function () {
$('a.comm-demo').click( function(event) {
var txt = $(this).next().val(); // demo<number>
Liferay.trigger('click', {text: txt});
return false;
});
});
然后在"接收portlet"上:
Liferay.bind(
'click',
function(event, data) {
var txt = data.text;
// this will set all class-of-fields to have the text
// "demo<number from above>Portlet"
$('.class-of-fields')[0].html(txt + "Portlet");
// I believe there is a way to minimize/maximize a portlet by
// simulating a mouse click, but research would be needed to
// confirm.
});