【问题标题】:SelectCheckboxMenu - Disable "all-selection"SelectCheckboxMenu - 禁用“全选”
【发布时间】:2013-03-07 22:14:52
【问题描述】:

我有一个 SelectCheckBoxMenu(Primefaces 组件),里面有很多条目。但是,允许用户选择最大值。 3 项。 SelectCheckBoxMenu 几乎满足了我的所有要求,唯一的问题是它提供了选择所有项目的可能性,在这种情况下我显然不需要。

是否可以禁用“全选”选项?我正在使用一个事件来检查最大条目。 3. 我想我可以对“全选”做同样的事情,不允许他选择它们,但我根本不想有“全选”选项。 p>

代码下方:

<p:selectCheckboxMenu value="#{services.titelId}" id="titel" 
            panelStyle="width:160px;" rendered="#{!services.isFirma()}"
            label="#{services.prepareTitel()}" style="width:160px;"
            styleClass="checkbox">
            <f:selectItems value="#{meta.getAkadTitelList()}" />
            <p:ajax event="change" listener="#{services.validateTitel()}"
                update="titel" process="@this" />
            <p:ajax event="toggleSelect" update="titel" process="@this" />
</p:selectCheckboxMenu>

此外,primefaces-showcase 示例的链接: https://www.primefaces.org/showcase/ui/input/checkboxMenu.xhtml

【问题讨论】:

  • 那个东西不是组合框。您的 CSS 类名称具有误导性,并且没有自我说明。
  • 是的,你是对的。我修改了它。

标签: jsf jsf-2 primefaces


【解决方案1】:

之前的答案在 PrimeFaces 5.0 下对我不起作用,因此我深入查看了生成的 HTML,并找到了 PF5 的解决方案。

对于 PrimeFaces 5.0,您可以删除“全选”复选框,如下所示:

.without-selectall .ui-selectcheckboxmenu-header .ui-chkbox {
    display: none; 
}

现在使用panelStyleClass-attribute 代替styleClass

<p:selectCheckboxMenu ...
    panelStyleClass="without-selectall"
>

【讨论】:

  • 简单而完美的解决方案,谢谢!
【解决方案2】:

您可以将 css 规则添加到您的 css 文件中

#titel .ui-chkbox .ui-widget {
     display:none;
}

您应该将 prependId="false" 添加到您的 h:form ,或者如果您不想添加 prependId="false" 您可以将 #titel .ui-chkbox .ui-widget 选择器更改为类似 #myForm\3A titel .ui-chkbox .ui-widget 的内容(以处理 : id分隔符)


如果您想删除整个过滤器行,您可以设置

<p:selectCheckboxMenu filter="false"....

【讨论】:

  • 一如既往的感谢,我尝试了这两个选项,但都没有成功。但是,您让我走对了路,css 规则就是答案。我确实从复选框菜单中“删除”了标题,这是有道理的,这是我需要的。 .ui-selectcheckboxmenu-header { display: none; } 我更改了 primefaces css,因为它对我的项目有意义,但如果其他人有同样的问题,请注意,只为您需要的 selectboxmenu 执行此操作。再次感谢丹尼尔。
  • 您最好不要更改 primefacs css ,而是将此 tule 添加到您自己的 css 文件中并确保它会最后加载...因此它将覆盖 primefaces css...
  • 哦,对不起,我表达得很糟糕,我没有更改primefaces.css,我在自己的css中添加了这段代码。
  • 你也可以只使用一个类名。例如。 &lt;p:selectCheckboxMenu styleClass="without-selectall"&gt; 然后使用 .ui-selectcheckboxmenu.without-selectall 而不是 #titel。这样更可重用。
  • 是的,这是最好的方法,这就是我在第一次回复时想说的:对于其他人,最好使用自己的 css 声明。
【解决方案3】:

您可以添加

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 2011-03-10
    • 1970-01-01
    • 2014-02-18
    相关资源
    最近更新 更多