[英]How to set visibility of a f:selectItem into p:selectOneRadio?
[英]How do i hide the f:selectItem tag under h:selectOneRadio
對於<f:selectItem>
,沒有rendered
屬性。 如何在<h:selectOneRadio>
下隱藏特定的<f:selectItem>
<h:selectOneRadio>
?
<h:selectOneRadio id="radio1" styleClass="selectOneRadio" value="#{}" rendered="#{}">
<f:selectItem itemValue="ALL" itemLabel="#{ONE}" />
<f:selectItem itemValue="PRIVATE" itemLabel="#{TWO}" />
<f:selectItem itemValue="GROUP" itemLabel="#{THREE}" />
</h:selectOneRadio>
在上面的代碼中我想隱藏第二個項目。
<f:selectItem>
是一個標記處理程序(在視圖構建時評估),而不是JSF組件(在視圖渲染時評估)。 您只能使用其他標記處理程序顯示/隱藏它,例如JSTL <c:if>
。
<h:selectOneRadio value="#{bean.selectedItem}">
<f:selectItem itemValue="ALL" itemLabel="#{ONE}" />
<c:if test="#{!bean.showPrivate}">
<f:selectItem itemValue="PRIVATE" itemLabel="#{TWO}" />
</c:if>
<f:selectItem itemValue="GROUP" itemLabel="#{THREE}" />
</h:selectOneRadio>
只有當在視圖渲染時間內通過迭代的JSF組件(例如<h:dataTable>
或<ui:repeat>
准備了#{bean}
時,上面的代碼才會起作用,你真的必須在支持bean代碼中執行它代替。
您可以使用f:selectItems
。 例如:
<h:selectOneRadio id="radio1" styleClass="selectOneRadio" rendered="true" value="controller.value">
<f:selectItems value="#{controller.items}" />
</h:selectOneRadio >
這是類控制器:
public clss Controller(){
private List<SelectItem> items = new ArrayList<SelectItem>();
public Collection<SelectItem> getItems(){
if (items.isEmpty()){
createItems();
}
return this.items;
}
public private createItems(){
if (condition){ //Here you can hidden the selectItem
this.items.add(new SelectItem(value,label));
}
}
}
你可以試着把它包圍起來
<h:panelGrid rendered="">
h:selectOneRadio
</h:panelGrid >
編輯:
或使用
<h:panelGroup>
編輯
這不是一個好主意,但我認為你可以通過代碼冗余來實現,如下所示
<h:panelGroup rendered="#{}">
<h:selectOneRadio id="radio1" styleClass="selectOneRadio" rendered="true">
<f:selectItem itemValue="ALL" itemLabel="one" />
<f:selectItem itemValue="PRIVATE" itemLabel="two" />
<f:selectItem itemValue="GROUP" itemLabel="THREE" />
</h:selectOneRadio>
</h:panelGroup>
<h:panelGroup rendered="#{!}">
<h:selectOneRadio id="radio11" styleClass="selectOneRadio" rendered="true">
<f:selectItem itemValue="ALL" itemLabel="one" />
<f:selectItem itemValue="PRIVATE" itemLabel="two" />
</h:selectOneRadio>
</h:panelGroup>
我無法理解標記/來源,但我會建議從標題中猜測
$("a.selectOneRadio f.selectItem").hide()
應該做的工作假設
1) selectOneRadio is the class name of the a tag.
2) selectItem is the class name of the f tag.
3) f is not a tag in HTML. So if `f` is also a class name, you would have to use `.f .selectItem`
如果可以,請在問題中提供一些細節。
如果滿足您的需求, f:selectItem
元素上還有一個disabled
屬性。 否則你將不得不像Michel Foucault建議的那樣手動添加它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.