选择复选框菜单 - 禁用"all-selection"



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

是否有可能禁用"select-all"选项?我正在使用一个事件来检查条目的最大值。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

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

对于PrimeFaces 5.0,您可以像这样删除"select all"复选框:

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

现在使用panelStyleClass -attribute代替styleClass:

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

你可以添加css规则到你的css文件

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

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


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

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

您可以添加& lt; p: selectCheckboxMenu showHeader ="false"…

相关内容

  • 没有找到相关文章

最新更新