4

我有 primefaces 数据表,其中定义了分页器模板和工具栏<f:facet name="header">

例子:

<p:dataTable paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
currentPageReportTemplate="{startRecord} - {endRecord} of {totalRecords}">

<f:facet name="header">

    <p:selectOneMenu id="presetSelectOneMenu"
        value="#{alarmTable.selectedGuiPreset}"
        style="padding: 0; margin: 0;float: left; display: block; width: 100px; text-align: left;">
        <f:selectItem itemLabel="Global" itemValue="" itemDisabled="true" />
        <f:selectItems value="#{guiSettings.arrayOfGlobalGuiPresets}" />
        <f:selectItem itemLabel="Personal" itemValue="" itemDisabled="true" />
        <f:selectItems value="#{guiSettings.arrayOfPersonalGuiPresets}" />
        <p:ajax event="change" update="alarmTableId"
            listener="#{alarmTable.actionSelectGuiPreset(true)}" />
    </p:selectOneMenu>

    <p:commandButton id="btnRefreshFilter" icon="ui-icon-refresh"
        action="#{alarmTable.actionSelectGuiPreset(true)}"
        update="alarmTableId" style="margin-left: 3px; float: left;"
        title="Refresh" />

    <h:outputText id="selectedGuiPresetText"
        style="float: left; font-size: 12px; padding-top: 3px; padding-left: 5px"
        value="In use - '#{alarmTable.selectedGuiPresets.size() > 0 ? alarmTable.selectedGuiPresets.get(0).presetName : ''}'" />
</f:facet>
<p:columns>

它看起来像:图片

我想节省垂直监视器空间并将组件集成<f:facet name="header">到分页器行中。那可能吗?

4

1 回答 1

5

从 PrimeFaces 5.0(社区版)开始,这确实是可能的。您现在可以定义自定义构面并将其名称添加到paginatorTemplate. 像这样:

<p:dataTable paginator="true" paginatorTemplate="{Customization}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}">

    <f:facet name="{Customization}">
        <p:selectOneMenu ... />
        <p:commandButton ... />
        <h:outputText ... />
    </f:facet>

    ...header
    ...columns
</p:dataTable>

可以在DataExporter 展示中找到此功能的演示。

问候

于 2014-08-21T10:47:19.297 回答