SelectCheckboxMenu - 禁用“全选”

时间:2013-03-19 09:49:21

标签: jsf jsf-2 primefaces

我有一个带有大量条目的 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展示示例的链接: https://www.primefaces.org/showcase/ui/input/checkboxMenu.xhtml

2 个答案:

答案 0 :(得分:15)

以前的答案在PrimeFaces 5.0下对我不起作用,所以我对生成的HTML进行了深入研究,并找到了PF5的解决方案。

对于 PrimeFaces 5.0 ,您可以删除&#34;全选&#34;像这样的复选框:

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

现在使用panelStyleClass - 属性而不是styleClass

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

答案 1 :(得分:5)

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

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

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


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

: