排序h:dataTable

时间:2012-07-13 15:53:18

标签: java sorting jsf

我正在使用Seam和Java来创建一个h:dataTable,其中包含来自填充了对象的ArrayList的信息。我的问题是,有没有办法通过点击其中一个标题对表进行排序。我现在有一些代码,它所做的就是以与原来相同的方式重新加载表。

这是我的一些代码。如果您需要更多,请告诉我: 表:

<h:dataTable value="#{deliveryPort.getWholeDeliveryList()}" var="delivery" rules="rows">
                    <h:column>
                        <div class="setWidth">
                            <div class="white">
                            <f:facet name="header">
                                <h:outputLink style="color:#FFFFFF" action="#{deliveryPort.sortByAddress()}">
                                    Address
                                </h:outputLink>
                            </f:facet>
                            </div>
                            <h:outputText value="#{delivery.address}" />
                        </div>
                    </h:column>

类别:

    public String sortByAddress(){
    for(int i = 0; i < wholeDeliveryList.size(); i++){
        for(int j= i+1; j<wholeDeliveryList.size(); j++){
            if(wholeDeliveryList.get(i).getAddress().compareTo(wholeDeliveryList.get(j).getAddress())<1){
                FlowerStoreDelivery temp = wholeDeliveryList.get(i);
                wholeDeliveryList.set(i, wholeDeliveryList.get(j));
                wholeDeliveryList.set(j, temp);
            }
        }
    }
    return "deliveryList.seam";
}

getWholeDeliveryList():

    public List<FlowerStoreDelivery> getWholeDeliveryList(){
wholeDeliveryList = new ArrayList<FlowerStoreDelivery>();
wholeDeliveryList.addAll(entityManager.createQuery("SELECT e FROM FlowerStoreDelivery e").getResultList());
    return wholeDeliveryList;
}

2 个答案:

答案 0 :(得分:1)

您可以通过JSF专家blog获取有关DataTable的更多信息,包括排序等等BalusC

答案 1 :(得分:0)

例如rich:Richfaces的dataTable支持通过单击列进行排序。