2013-12-23 56 views
0

我在p:datatable中使用排序,最後一列是編輯。 其工作正常,直到排序按下。只要我進行分類,它表現得異常。 編輯它給錯誤的對象。 belwo是我的數據表。在p:datatable中排序表現異常

<h:form> 
<h:inputHidden value="#{countryBean.initList}" /> 
    <p:dataTable id="existingCountry1" var="countryLang" value="#{countryBean.myexistingCountryList}" style="width: 100%" styleClass="role_detail_section" 
    rowStyleClass="activity_white, activity_blue" cellspacing="0" cellpadding="0" border="0" rows="6" paginator="true"> 

     <p:column width="30%" headerText="Country " sortBy="countryName"> 
      <h:outputLabel value="${countryLang.countryName}" /> 
     </p:column> 

     <p:column width="30%" headerText="Country Code " > 
      <h:outputLabel value="${countryLang.countryCode}" /> 
     </p:column> 


     <p:column headerText="Edit" > 

      <p:commandLink id="editCommandLinkId"            
       action="#{countryBean.editCountryByCountryCode(countryLang.countryCode,true)}" title="Edit" styleClass="edit_icon" onstart="statusDialog.show();" onsuccess="statusDialog.hide();"/> 

     </p:column> 
    </p:dataTable> 

假設我爲美國編輯過,那麼它會顯示AU的數據。 排序我使用belwo技術

private ArrayList<Country> myexistingCountryList; 
public String getInitList() { 
    myexistingCountryList= getExistingCountryList(); 
    return null; 
} 


public ArrayList<Country> getExistingCountryList() { 



     try { 
      existingCountryList = new ArrayList<Country>(); 
      existingCountryList.addAll(getCountryService().getExistingCountry()); 


     } catch (ServiceException e) { 
      e.printStackTrace(); 
      errorLogger.error("Error while getExistingCountryList in service layer", e); 
     } 

回答

0

有在代碼中許多錯誤。

代替$使用#

而不是sortBy="countryName"sortBy="#{countryLang.countryName}"

所以basicly

改變這種

<p:column width="30%" headerText="Country " sortBy="countryName"> 
    <h:outputLabel value="${countryLang.countryName}" /> 
</p:column> 

這個

<p:column width="30%" headerText="Country " sortBy="#{countryLang.countryName}"> 
    <h:outputLabel value="#{countryLang.countryName}" /> 
</p:column>