如何隐藏h:selectOneRadio下的f: selecttem标签?
How do i hide the f:selectItem tag under h:selectOneRadio
对于<f:selectItem>
,没有rendered
属性。如何将特定的<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>
只有当#{bean}
在视图呈现期间由迭代的JSF组件(如<h:dataTable>
或<ui:repeat>
)准备时,上述操作才会失效,您必须在后台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的建议手动添加它们。
相关文章:
- 需要使用谷歌应用程序脚本列出谷歌域下的所有网站
- 如何将ngrepeat下的ngmodel绑定到$scope
- 如何检测重叠元素下的单击
- Possibile使用Manifest v2下的HTML5地理位置API将lat/long转换为国家/地区
- 如何解决这种情况下的非法调用类型错误
- 在if语句下的html中使用javascript变量
- Ajax模式下的Jquery Select2 V4在IE9中不起作用
- internet explorer 8兼容模式下的Youtube api错误
- IE7-FIX下的总碰撞
- clientlib下的Js文件未加载
- 如何使用javascript从同一浏览器下的其他页面获取URL?有可能吗
- 怪癖模式下的浮动DIV
- 如何加载特定天气条件下的图标?(AngularJS)
- Angularjs:ui路由嵌套状态下的绑定不起作用
- 删除所有按下的按键事件
- 比较IF条件下的两个javascript数值
- HTML按钮的作用类似于从键盘按下的键,并在某些对象或整个网站上起作用
- 控制引导下的间距
- 如何在“控制缩放”下的“打开图层”上添加一些图像
- 为什么谷歌跟踪代码管理器不能安装在正文下的另一个HTML元素中