実際には 1 つのページに 2 つのポートレットがありますが、ボタンをクリックして最初のポートレットを非表示にしたいのでsubmit
、2 番目のポートレットのみを表示する必要があります。次のコードを使用しました。
document.getElementById("portlet-id").style.visibility='none'
しかし、ページを更新した後、再びポートレットが表示されるようになりました。どうすれば進められるかについて、誰かが私に解決策を提供してくれますか?
実際には 1 つのページに 2 つのポートレットがありますが、ボタンをクリックして最初のポートレットを非表示にしたいのでsubmit
、2 番目のポートレットのみを表示する必要があります。次のコードを使用しました。
document.getElementById("portlet-id").style.visibility='none'
しかし、ページを更新した後、再びポートレットが表示されるようになりました。どうすれば進められるかについて、誰かが私に解決策を提供してくれますか?
次のコードを使用してvisibility
、ポートレットの をJSP に設定できます。false
<%
renderRequest.setAttribute(WebKeys.PORTLET_CONFIGURATOR_VISIBILITY, Boolean.FALSE);
%>
これにより、ポートレットがユーザーから見えなくなります。
ポートレットがレンダリングされるたびに、リクエストまたはセッション (選択したもの) で設定されたパラメーターをチェックして、ポートレットを表示するか、ポートレットを表示しないかを次のように指定できます。
<%
String paramFromRequestToHide = renderRequest.getParameter("hidePortlet");
// can also fetch from session: portletSession.getAttribute("hidePortlet");
if (paramFromRequestToHide .equals("YES")) { // you can use your favorite data-type
renderRequest.setAttribute(WebKeys.PORTLET_CONFIGURATOR_VISIBILITY, Boolean.FALSE);
} else {
renderRequest.setAttribute(WebKeys.PORTLET_CONFIGURATOR_VISIBILITY, Boolean.TRUE);
}
%>
上記のアプローチを使用したくない場合は、次のように JavaScript アプローチとパラメーター アプローチを組み合わせることができます。
<%
String paramFromRequestToHide = renderRequest.getParameter("hidePortlet");
if (paramFromRequestToHide .equals("YES")) {
%>
<aui:script>
Liferay.Portlet.ready(
/*
This function gets loaded after each and every portlet on the page.
portletId: the current portlet's id
node: the Alloy Node object of the current portlet
*/
function(portletId, node) {
document.getElementById(portletId).style.display = 'none';
// or alternatively using pure Alloy UI
// node.hide();
}
);
</aui:script>
<%
} else {
%>
<aui:script>
Liferay.Portlet.ready(
function(portletId, node) {
document.getElementById(portletId).style.display = 'block';
// or alternatively using pure Alloy UI
// node.show();
}
);
</aui:script>
<%
}
%>
Liferay 6.1以降、Alloy UIはliferayの事実上のjavascriptライブラリであるため、Alloy UI APIといくつかのデモをチェックアウトしてAlloy UIを学びたい場合。現在、Alloy UI には公式 Web サイトがあり、多くの役立つチュートリアルと例が掲載されています。
これにより、先に進むための十分な資料が得られることを願っています:-)
次のようにすることもできます。
ポートレット ID が次の場合: callcenter_WAR_xyzyportlet
$('#p_p_id_callcenter_WAR_xyzyportlet_').css({display:'none'});