0

我正在使用 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;
}
4

2 回答 2

1

您可以在 JSF 专家BalusC的博客上获得更多关于 DataTable 的信息,包括排序等。

于 2012-07-16T16:35:17.767 回答
0

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

于 2012-07-16T16:15:43.570 回答