当前位置: 首页 > 知识库问答 >
问题:

PrimeFaces命令按钮:动态启用/禁用图标

傅正豪
2023-03-14

PrimeFaces的CommandButton允许指定图标:

<p:commandButton value="Press me" icon="redBall" ... />

但是,我需要根据JSF托管bean属性启用/禁用图标。

我试过了

<p:commandButton value="Press me" icon="#{bean.iconClass}" ... />

这适用于选择不同的图标,但不允许完全禁用图标(即,在没有icon=属性的情况下获得相同的渲染效果)。我可以在getIconClass()返回一个空字符串,但PrimeFaces仍将渲染额外的

有没有办法告诉PrimeFaces“我根本不想要图标”(除了完全去掉图标=属性)?


共有2个答案

龙哲
2023-03-14

一个蹩脚的解决办法是有两个CommandButton。一个有图标定义,一个没有。然后渲染正确的一个。

林曦之
2023-03-14

我可以想出两种方法而不用重复按钮。

>

<p:commandButton ...>
    <c:if test="#{not empty bean.icon}"><f:attribute name="icon" value="#{bean.icon}" /></c:if>
</p:commandButton>

设置一个完全隐藏图标的样式类,并有条件地提供它。

.hideicon .ui-icon { display: none; }
.hideicon .ui-button-text { padding-left: 1em; }

<p:commandButton ... icon="#{bean.icon}" styleClass="#{empty bean.icon ? 'hideicon' : ''}" />
 类似资料:
  • 问题内容: 我有这个HTML: 我该如何做这样的事情: 当文本字段为空时,应禁用提交(disabled =“ disabled”)。 在文本字段中键入内容以删除禁用的属性时。 如果文本字段再次变为空(删除了文本),则应再次禁用提交按钮。 我尝试过这样的事情: …但这不起作用。有任何想法吗? 问题答案: 问题在于,仅当焦点从输入移开(例如,有人单击输入或将选项卡移出输入)时,更改事件才会触发。尝试改

  • 这是一个很奇怪的问题,因为我很确定逻辑是正确的,但它仍然不起作用。因此,当GUI启动时,在启动函数中,我对每个按钮、Kbutton、Bbutton等使用以下代码行将大多数按钮设置为灭活:

  • 问题内容: 单击后,我想在iOS上禁用按钮()。我是开发iOS的新手,但我认为目标上的等效代码-C是这样的: 但是我不能迅速做到这一点。 问题答案: Swift中的布尔值是。 应该做。 这是的属性的Swift文档。

  • 我使用Primeface 4.0和jsf 2.0。 我试图调用托管bean的一个方法,在旋转木马中的Primefaces commandbutton中,但它不起作用。该按钮似乎无法调用该方法。什么都没发生。。。 所以,我一直在寻找,但我找不到任何能帮助我解决这个问题的东西。 下面是我的代码: 页xhtml 以及管理bean的方法 OBS:May bean的范围是ViewScoped。 请 谢谢

  • 问题内容: 我想启用/禁用没有jQuery的按钮。这是我的代码: 作品。但这不是-按钮保持禁用状态: 问题答案: 是一个布尔属性,仅它的存在就会导致元素被禁用,无论该属性的值实际是多少。这就是为什么您可以通过将属性设置为来禁用JavaScript中的元素的原因,您可以将其设置为任何值(这就是为什么将其设置为禁用状态的原因)。 在HTML中,您甚至根本不需要为属性设置一个值: 但是,建议使用布尔属性

  • 问题内容: 所以我有一个像这样的按钮: 我要如何禁用和启用它?我已经尝试过,但是将其重新启用是一个问题。我尝试将其设置回false,但是没有启用它。 问题答案: 使用JavaScript 禁用HTML按钮 启用html按钮 使用jQuery jQuery 1.6之前的所有版本 禁用HTML按钮 启用html按钮 1.6之后的所有版本的jQuery 禁用HTML按钮 启用html按钮 PS更新了基于