Primefaces:在datatable中隐藏/显示精确过滤器

Primefaces:在datatable中隐藏/显示精确过滤器,primefaces,Primefaces,我正在创建一个带有过滤器的数据表,其中可以使用SelectBoolean按钮显示/隐藏过滤器。我可以隐藏文本过滤器,但“精确”过滤器的选择框不会隐藏。代码如下所示。我将感谢任何帮助 <p:dataTable id="orgs" var="id" widgetVar="idTable" value="#{orgList.ids}" rows="10" rowKey="#{id.idPk}" paginator="true" paginatorPosition="top" selection

我正在创建一个带有过滤器的数据表,其中可以使用SelectBoolean按钮显示/隐藏过滤器。我可以隐藏文本过滤器,但“精确”过滤器的选择框不会隐藏。代码如下所示。我将感谢任何帮助

<p:dataTable id="orgs" var="id" widgetVar="idTable"
value="#{orgList.ids}" rows="10"
rowKey="#{id.idPk}"
paginator="true" paginatorPosition="top" 
selectionMode="single" 
selection="#{orgList.selectedOrg}"
filteredValue="#{orgList.filteredValues}"
>

<f:facet name="header">
    <p:toolbar id="orgListToolbar">
        <p:toolbarGroup align="right">
            <p:selectBooleanButton value="#{orgList.showFilter}" onIcon="myfilter" offIcon="ui-icon-minusthick" onLabel="F" offLabel="F">
                <p:ajax update="orgs" oncomplete="idTable.clearFilters()"/>
            </p:selectBooleanButton>
        </p:toolbarGroup>
    </p:toolbar>
</f:facet>


<p:column sortBy="#{id.id}" headerText="Id" filterBy="#{id.id}" filterStyle="#{orgList.showFilter?'':'display: none; visibility: hidden;'}">
    <h:outputText value="#{id.id}" />
</p:column>
<p:column sortBy="#{id.idCls.clsName}" headerText="Id Type"             
        filterBy="#{id.idCls.clsName}" filterMatchMode="exact" filterOptions="#{commonLists.selectItemIdClses}" 
        filterStyle="#{orgList.showFilter?'':'display: none; visibility: hidden;'}" >
    <h:outputText value="#{id.idCls.clsName}" />
</p:column>


这是因为Primefaces覆盖了您的
过滤器样式

您可以执行以下操作:

在自定义css文件中添加以下内容(
id
是您的表id)

确保最后包含css。。。(您可以在主体中加载css)如下所示

<h:body>
    <h:outputStylesheet library="css" name="myCssFile.css" target="head" />

选中它(在浏览器开发工具的控制台中)

以隐藏jsf数据表include中列标题的过滤器

filterStyle=“显示:无”


它将隐藏筛选列

最简单的解决方案是定义自己的样式并用!重要的

        <style type="text/css">
            .ui-column-filter{
                display:none !important;
            }
        </style>

.ui列筛选器{
显示:无!重要;
}

感谢Daniel的回复。我试图实现一个切换按钮来显示/隐藏过滤器。所以你的解决方案可能对我不起作用。
$("#form\\:dataTable th select").hide();//.show

$("#form\\:dataTable th input").hide();//.show
        <style type="text/css">
            .ui-column-filter{
                display:none !important;
            }
        </style>