p:dataTable排序和过滤错误

时间:2015-02-20 14:31:59

标签: sorting jsf primefaces filter datatable

我在dataTable的标题中创建了globalFilter,然后在列中添加了排序。但是有一个问题:在我第一次使用过滤器后,列可以排序。

因此,当程序启动时,用户需要清除已经空的过滤器控件,之后可以对表中的数据进行排序。

拜托,有人可以推荐我如何解决问题吗? 我已经在PrimeFaces showcase上制作了过滤器,例如。

<p:dataTable id="dtParkType"
             widgetVar="w_dtParkType"
             var="parkTypeWeb"
             value="#{parkTypeHolder.data}"
             selectionMode= "single"
             selection="#{parkTypeController.selectedItem}"
             rowKey="#{parkTypeWeb.id}"
             emptyMessage="#{msg['common.NoValue']}"
             rowStyleClass="#{parkTypeWeb.isDeleted? 'colored' : null}"
             filteredValue="#{parkTypeController.filteredData}"
             scrollable="true"
             scrollRows="27"
             paginator="true"
             rows="27"
             resizableColumns="true">
    <f:facet name="header">
        <div align="right">
            <p:outputPanel>
                <h:outputText value="#{msg['edit.Search']}"/>
                <p:inputText id="globalFilter"
                             onkeyup="PF('w_dtParkType').filter()"
                             style="width:150px;margin-left:5px;"
                             placeholder="#{msg['common.PlaceHolder.KeyWord']}"/>
            </p:outputPanel>
        </div>
    </f:facet>

    <p:ajax event="rowSelect"
            listener="#{parkTypeController.onRowSelect}"
            update=":rightForm:panelbtnParkType"/>

    <p:ajax event="rowDblselect"
            listener="#{parkTypeController.callEditForm}"
            update=":formEditParkType:pnlEditParkType"/>

    <p:ajax event="rowUnselect" update=":rightForm:panelbtnParkType"/>

    <p:column filterBy="#{parkTypeWeb.longName}"
              filterMatchMode="contains"
              filterStyle="display:none"
              sortBy="#{parkTypeWeb.longName}">

        <f:facet name="header">
            <h:outputText value="#{msg['column.Title.Full']}"/>
        </f:facet>

        <h:outputText value="#{parkTypeWeb.longName}"/>
    </p:column>

    <p:column filterBy="#{parkTypeWeb.shortName}"
              filterMatchMode="contains"
              filterStyle="display:none"
              sortBy="#{parkTypeWeb.shortName}">

        <f:facet name="header">
            <h:outputText value="#{msg['column.Title.Short']}"/>
        </f:facet>

        <h:outputText value="#{parkTypeWeb.shortName}" />
    </p:column>
</p:dataTable>

0 个答案:

没有答案