7

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

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

代码下方:

<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

4

3 回答 3

19

之前的答案在 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"
>
于 2014-08-21T10:38:17.470 回答
6

您可以将 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"....
于 2013-03-19T09:58:40.943 回答
0

您可以添加 <p:selectCheckboxMenu showHeader="false"......

于 2021-10-27T13:42:03.750 回答