2013-03-08 95 views
1

我有以下簡單的測試頁:PrimeFaces V3.4 ++:數據表排序工作不正常

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:p="http://primefaces.org/ui" 
     xmlns:f="http://java.sun.com/jsf/core"> 
    <h:head> 
     <title>Test page</title> 
    </h:head> 
    <h:body> 
     <div id="container"> 
      <h:form> 
       <p:dataTable id="unusedTable" var="c" value="#{couponBean.unusedCoupons}" 
           paginator="true" rows="5"> 

        <p:column headerText="#{l10n.id}" sortBy="#{c.id}"> 
         <h:outputText value="#{c.id}" /> 
        </p:column> 

        <p:column headerText="#{l10n.name}" sortBy="#{c.name}" > 
         <h:outputText value="#{c.name}" /> 
        </p:column> 

       </p:dataTable> 
      </h:form> 
     </div> 
    </h:body> 
</html> 

當我部署使用PrimeFaces v3.4.2或v3.5版本的應用程序,我遵守以下怪異的行爲:

  • 原: Before sorting
  • 排序後: After sorting

正如您所看到的,最初,該表出現在表左側的排序圖標中。如果我嘗試對任何列進行排序,則在原始表格的第1列上生成排序後的表格。

我試圖使用PrimeFaces v3.3.1重新部署我的應用程序,並且一切正常。

如果你能告訴我如何解決這個問題,我將不勝感激。

最好的問候,

詹姆斯陳

+0

我只能看到代碼中的兩列。你能提供更完整的代碼示例嗎? – bjedrzejewski 2013-03-08 16:15:11

+0

@ jedrus07:我用適當的圖片更新了我的問題。其他代碼不會導致此問題。 :) – 2013-03-08 16:29:38

+0

你在服務器上使用純JSF嗎?如果你有Spring MVC/webflow,這可能會導致PF局部渲染出現問題 – rootkit 2013-03-08 16:40:21

回答

0

我的項目突然被損壞。我不知道爲什麼會發生。但是,在我創建了一個新項目並複製了所有文件之後,使用PrimeFaces v3.4 +++進行排序後,它將再次正常工作。

1

嘗試在你的數據表中添加rowKey屬性。 rowKey =「#{c.id}」

+0

'rowKey'是用於選擇,但我仍然試過,它仍然無法工作:) – 2013-03-08 16:55:25

1

只是一個想法 - 什麼班級是unusedCoupons?它是否可排序?如果不是(或者即使是)。只需在filteredValue=中添加ArrayList即可。這需要過濾(因爲它創建了一個用於存儲臨時過濾數據的地方),它也可以用於排序。

的額外信息

我已在primefaces 3.4工作p:dataTable ++與排序。我看到的區別是我用它來定義標題文字:

<p:column sortBy="#{c.id}"> 
    <f:facet name="header"> 
     <h:outputText value="#{l10n.id}" /> 
    </f:facet> 
    <h:outputText value="#{c.id}" /> 
</p:column> 

而不是你的headerText =。

同樣我所有的專欄都有id的分配。除此之外,它是相同的(加上我有過濾),它沒有問題。

+0

:)它仍然無法工作 – 2013-03-08 16:54:51

+0

是c.id和c.name只是字符串? couponBean的範圍是什麼? – bjedrzejewski 2013-03-08 17:00:16

+0

這個bean是'@ ViewScoped',並且這兩個參數都是字符串 – 2013-03-08 17:05:48