1

我有一个表格,我想隐藏如下的特定列。

例如,我想隐藏标签下的最后 3 列<p:columns> </p:columns>

<p:dataTable id="dynaDataTable" var="row" value="#{onListBean.rowList}" style="font-size:12px;"
        selectionMode="single" selection="#{onListBean.selectedRow}" rowKey="#{row.s_nr}"
        widgetVar="dynaTable" emptyMessage="Empty!" rowIndexVar="rowIndex"
        scrollable="true" scrollHeight="100%">

        <p:column id="rowNumber" exportable="false" headerText="#" style="max-width:50px; width:20px" >
            <h:outputText value="#{rowIndex+1}" />
        </p:column>
        <p:columns headerText="#{column.header}" value="#{onListBean.columns}" var="column" >
            <div style="text-align: center;">
                <h:outputText value="#{row[column.property]}"/>
            </div>
        </p:columns> </p:dataTable>

任何想法?

4

2 回答 2

2

只需在您的 bean 中创建一个方法,该方法将返回您要显示的列,并将其与<p:columns value="...". 如果这是不可能的,您也可以使用visible属性,例如visible="#{column.header ne 'excludeMe'}".

如果您希望根据可用的屏幕宽度显示列,您应该查看responsivePriority属性或<p:dataTable reflow="true".

也可以看看:

于 2021-05-18T15:17:04.473 回答
1

我无法从您的问题中理解您是否需要使用 UI 组件来完成它。如果是的话,Primefaces 有一个非常不错的组件<p:columnToggler />,它可以让您随时隐藏和显示表格列。如果您在谈论另一种情况,我仍然认为您可以使用 columntoggler 做一些技巧而不在 UI 中显示它。

于 2021-05-18T15:07:35.100 回答