在p中排序:datatable表现异常

时间:2013-12-23 09:26:46

标签: jsf-2 primefaces

我在p:datatable中使用排序,最后一列是编辑。 它的工作正常,直到按下排序。一旦我做排序它表现不寻常。 在编辑它时给出错误的对象。 belwo是我的数据表。

<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);
        }

1 个答案:

答案 0 :(得分:0)

您的代码中存在许多错误。

而不是$使用#

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

基本上

更改此

<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>