Primefaces dataTable排序似乎不起作用

时间:2013-08-02 14:31:43

标签: jsf sorting primefaces datatable

我在排序动态dataTable时遇到困难

的dataTable

<h:form prependId="false" id="Main_Form">
    <p:dataTable id="dataTable" var="c" value="#{databaseSearch.customerList}"  
        paginator="true" rows="10" paginatorAlwaysVisible="false"
        paginatorTemplate="Page {CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}  Rows per page {RowsPerPageDropdown}"  
        rowsPerPageTemplate="5,10,15,30" draggableColumns="True">  
        <p:column sortBy="#{c.machine}" headerText="Machine">  
            <h:outputText value="#{c.machine}" />   
        </p:column>  
        <p:column sortBy="#{c.company}" headerText="Company">  
            <h:outputText value="#{c.company}" />
        </p:column>  
        <p:column sortBy="#{c.contact}" headerText="Contact">  
            <h:outputText value="#{c.contact}" />  
        </p:column>  
        <p:column sortBy="#{c.phone}" headerText="Phone">  
            <h:outputText value="#{c.phone}" />  
        </p:column>  
        <p:column sortBy="#{c.email}" headerText="Email"> 
            <h:outputText value="#{c.email}" />
        </p:column>  
        <p:column exportable="false" headerText="Modify">   
            <center>
                <p:commandButton id="basic" value="Update"
                    action="#{updateEntry.setMachine(c.machine)}"
                    oncomplete="dlg1.show();"
                    styleClass="ui-Machinebutton" update=":Update_Entry"/>
                <p:tooltip for="basic" value="Update/Delete Database Entry"
                    showEffect="fade" hideEffect="fade" />
            </center>
        </p:column> 
    </p:dataTable>
</h:form>

我正在使用@SessionScoped bean,其中databaseSearch.customerList将查询数据库并填充dataTable。当我单击列名进行排序时,排序箭头标记会更改,但表内容不会排序。

我正在使用PF 3.4.2

1 个答案:

答案 0 :(得分:1)

如果您在每个请求中的getCustomerList方法中查询数据库,这将无效。您可以尝试使用局部变量

public class DatabaseSearch{

    private List<C> customerList;

    public List<C> getCustomerList () {
        if (customerList == null)
            customerList = dao.getcustomerList();
        return customerList ;
    }
}