PrimeFaces的CommandButton允许指定一个图标:
<p:commandButton value="Press me" icon="redBall" ... />
Run Code Online (Sandbox Code Playgroud)
但是,我需要根据JSF托管bean属性启用/禁用图标.
我试过了
<p:commandButton value="Press me" icon="#{bean.iconClass}" ... />
Run Code Online (Sandbox Code Playgroud)
这适用于选择不同的图标,但不允许完全禁用图标(即获得相同的渲染,如没有icon=
属性).我可以返回一个空字符串getIconClass()
,但PrimeFaces仍然会<span>
为按钮内的图标渲染额外内容,而CSS样式会使该范围显示为默认图标.
有没有办法告诉PrimeFaces"我根本不想要图标"(除了icon=
完全取出属性)?
我可以想到两种方法而不重复按钮.
提供<f:attribute>
有条件添加的图标<c:if>
.
<p:commandButton ...>
<c:if test="#{not empty bean.icon}"><f:attribute name="icon" value="#{bean.icon}" /></c:if>
</p:commandButton>
Run Code Online (Sandbox Code Playgroud)
设置一个样式类,它完全隐藏图标并有条件地提供它.
.hideicon .ui-icon { display: none; }
.hideicon .ui-button-text { padding-left: 1em; }
Run Code Online (Sandbox Code Playgroud)
同
<p:commandButton ... icon="#{bean.icon}" styleClass="#{empty bean.icon ? 'hideicon' : ''}" />
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
5669 次 |
最近记录: |