2011-10-21 79 views
2

我正在嘗試使用類似this example的Primefaces來過濾數據表。 (在網絡瀏覽器中)我輸入我想要過濾的文本,它只能運行一次,但是當我刪除了我寫的文本時,結果應該保持不變,當它回到原始狀態時。在Primefaces中過濾器數據表只能工作一次

所以它工作一次,然後不會迴應。 (我可以刪除或重新鍵入我寫的過濾文本,但不會影響表格)

對不起,關於代碼中怪異的屬性名稱,請與我聯繫。 :)

XHTML頁面:

<h:form> 
    <p:dataTable var="aggr" value="#{aggregationManagedBean.logiskAdressatModel}" 
      widgetVar="aggrTable" 
      emptyMessage="No aggr found with given criteria"> 

     <f:facet name="header"> 
      <p:outputPanel> 
       <h:outputText value="Filter:" /> 
       <p:inputText id="globalFilter" onkeyup="aggrTable.filter()" /> 
      </p:outputPanel> 
     </f:facet> 
     <p:column filterBy="#{aggr.name}"> 
      <f:facet name="header"> 
       <h:outputText value="Name" /> 
      </f:facet> 
      <h:outputText value="#{aggr.name}" /> 
     </p:column> 
    </p:dataTable> 
</h:form> 

支持bean:

@ManagedBean 
@SessionScoped 
public class AggregationManagedBean { 

    private List<LogiskAdressat> logiskaAdressater; 
    private DataModel<LogiskAdressat> logiskAdressatModel; 

    public AggregationManagedBean() { 
     logiskaAdressater = getLogiskaAdressater(); 
     logiskAdressatModel = new ListDataModel<LogiskAdressat>(logiskaAdressater); 
    } 

    private static List<LogiskAdressat> getLogiskaAdressater(){ 
     List<LogiskAdressat> logiskaAdressater = new ArrayList<LogiskAdressat>(); 

     logiskaAdressater.add(new LogiskAdressat("01 addr_id 01", "Joe")); 
     logiskaAdressater.add(new LogiskAdressat("02 addr_id 02", "John"));   
     logiskaAdressater.add(new LogiskAdressat("03 addr_id 03", "Jake")); 

     return logiskaAdressater; 
    } 

    public DataModel<LogiskAdressat> getLogiskAdressatModel() { 
     return logiskAdressatModel; 
    } 

    public void setLogiskAdressatModel(DataModel<LogiskAdressat> adressatModel) { 
     this.setLogiskAdressatModel(adressatModel); 
    } 

}

回答

4

LogiskAdressat序列化

如果沒有,那麼嘗試使其序列化 -

public class LogiskAdressat implements Serializable { 

    //.... 
+0

感謝您的建議。儘管在工作中將電腦留下,所以我必須在週一回來,傻了我。 –

+0

哇,我不認爲這是問題。它的工作,非常感謝你! –

+0

@丹尼斯S:您的歡迎。 –