組件比方說,我有JSF渲染JS
<p:outputPanel/>
我想要做的就是指定渲染ATTR使用js的方法不是服務器端。 這是爲了改善性能。 所以,我需要這樣的東西:
<p:outputPanel rendered = "someJsFunction()"/>
什麼解決的辦法?
組件比方說,我有JSF渲染JS
<p:outputPanel/>
我想要做的就是指定渲染ATTR使用js的方法不是服務器端。 這是爲了改善性能。 所以,我需要這樣的東西:
<p:outputPanel rendered = "someJsFunction()"/>
什麼解決的辦法?
rendered
propery在服務器端進行處理,如果它解析爲false,則element
不會添加到html文檔中。所以javascript
甚至找不到要素顯示或隱藏因爲它不是創建。
你可以做的唯一的事情就是刪除渲染的屬性並用javascript改變元素的顯示屬性。
<div id="myDiv">My Content</div>
<button onclick="myFunction()">Click Me</button>
<script>
function myFunction() {
document.getElementById("myDIV").style.display = "none";
}
</script>
好了,你可以在頁面加載導致同樣的效果rendered
屬性只,因此,使用jQuery
,你可以不喜歡它
$(document).ready(function() {
document.getElementById("YourPanelIdHere").style.display = "none";
});
,它會不顯示在服務器端解決。
不僅如此。如果'rendered'的計算結果爲'false',那麼該組件不在JSF支持的組件樹視圖中,因此它不能被重新渲染,除非它在另一個'UIContainer'內像另一個'
我不相信這是可能的,是定義將渲染哪個組件的服務器端,在客戶端它只是爲時已晚。 CSS可見屬性可能是一個解決方案 – Pellizon