单击另一个portlet中的链接时显示和隐藏portlet

时间:2011-08-02 19:34:51

标签: java liferay icefaces

我有三个portlet,例如:portletAportletBportletC

portletA显示在左侧,它有两个链接linkBlinkC

如果我点击linkB,则portletB应显示在右侧,如果我点击linkC,则portletB必须隐藏,portletC应该显示。

请告诉我如何使用ICEfaces执行此操作。

2 个答案:

答案 0 :(得分:2)

我使用此代码来隐藏portlet但是在刷新页面之后,portlet是可见的,你可以建议我可以做什么,以便刷新后的portlet不可见?

       function fun(E)
       {

           if(E=="Entry")
               {
           alert("hi");

                 document.getElementById("p_p_id_ipc_WAR_IPC2portlet_").style.display='none';
                 document.getElementById("p_p_id_ipc1_WAR_IPC2portlet_").style.display = '';



               }

           else
               {
               alert("else");
               }

           }

  </script>

答案 1 :(得分:1)

你可以用简单的javascript和css来做到这一点。您需要做的是查看portlet B和C portlet id是什么,而不是使用javascript,您可以在portlet边界div上更改css“display”属性。

使用简单的javascript

var p = document.getElementById("p_p_id_YOUR-PORTLET-ID_");
if (p) {
  if (p.style.display == "none") {
    p.style.display = "block";
  } else {
    p.style.display = "none";
  }
}

使用jQuery

jQuery("p_p_id_YOUR-PORTLET-ID_").show();
//or
jQuery("p_p_id_YOUR-PORTLET-ID_").hide();

示例用于显示/隐藏单个portlet。在你的情况下,链接B应隐藏C并显示B,并以其他方式链接C.

另请查看Client-side Inter-Portlet Communication