组件比方说,我有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