我有一个需要动态渲染功能的页面,具体取决于所选的单选按钮 - 我在页面控件上使用呈现的属性,并通过页面的辅助bean管理它 - 当选择一个单选按钮时,页面会被刷新取决于我在托管bean中选择的呈现属性(当然是通过AJAX调用) - 以下是我想要完成的示例。
<h:selectOneRadio valueChangeListener="#{myBean.onValueChange}"
id="radioButton1"
tabindex="10"
value="#{myBean.displayTypCd}"
<f:selectItem itemValue="A" itemLabel="Option1" />
<f:selectItem itemValue="B" itemLabel="Option2" />
<f:selectItem itemValue="C" itemLabel="Option3" />
<p:ajax event="click" process="@this"
listener="#{myBean.onValueChange}"
update=":f:myContainer" />
</h:selectOneRadio>
<p:selectOneMenu rendered="#{myBean.selectMe}"
id="myId"
effect="highlight"
value="#{myBean.element1}"
<f:selectItems value="#{Collection.element}" />
</p:selectOneMenu>
所以这很好 - 我可以重新渲染我的页面的部分,但有一个闪烁 - 我试图看看是否可以从客户端实现相同,如果有人有任何成功。
由于
答案 0 :(得分:0)
您无法使用javascript更改呈现的属性。呈现的属性仅供服务器端使用。为了控制客户端的呈现,您可以使用Javascript执行此操作,如下所示
function(){
var component = document.getElementById('formid:componentid');
component.style.display = 'none'; -- to hide it
component.style.display='inline'; -- to render it
}
或者,如果有多个组件,您可以将组件包装在div中,并使用与上面相同的代码作为div。