1

selectBooleanButtonを使用してフィルターを表示/非表示にできるフィルターを使用してdataTableを作成しています。テキストフィルターを非表示にすることはできますが、「正確な」フィルターの選択ボックスが非表示になりません。コードを以下に示します。助けていただければ幸いです。

<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>

4

3 に答える 3

1

これは、PrimefacesがあなたのfilterStyle

次のことができます:

カスタムcssファイルに以下を追加します(これidはテーブルIDです)

#id .ui-column-filter{
 display:none;
}

最後にCSSを含めるようにしてください...(CSSを本体にロードできます)このように

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

display: none;それで十分であり、まったく必要ないvisibility: hidden;ことに注意してください


フィルタを非表示/表示するには、適切なselectosでjQuery .hide()/関数を使用できます.show()

例えば ​​:

$("#form\\:dataTable th select").hide();//.show

$("#form\\:dataTable th input").hide();//.show

DataTableで確認してください-フィルタリング(ブラウザ開発者ツールのコンソールで)

于 2013-02-05T07:28:48.063 に答える
1

jsfdatatableの列ヘッダーからフィルターを非表示にするには

filterStyle = "display:none"

フィルタ列を非表示にします

于 2018-12-04T05:18:53.933 に答える
0

最も簡単な解決策は、独自のスタイルを定義し、値を!importantでオーバーライドすることです。

        <style type="text/css">
            .ui-column-filter{
                display:none !important;
            }
        </style>
于 2020-02-24T08:47:01.873 に答える