0

我正在使用 primeface 数据表,但它的排序不起作用,任何人都可以帮助我!我试图在 sortBy 中添加 #{v.elementID} 但它仍然无法正常工作

<p:dataTable value="#{dashboardBean.topTenMenuItem}"
                                        var="v" paginator="true"
                                        rows="#{msg['dashboard.product.mapping.datatable.rows']}">
                                        <p:column sortBy="#{v.elementId}" headerText="ID">
                                            <h:outputText value="#{v.elementId}" />
                                        </p:column>
                                        <p:column sortBy="#{v.name}" headerText="Name">
                                            <h:link value="#{v.name}" />
                                        </p:column>

                                        <p:column sortBy="#{v.updateBy}" headerText="Update By">
                                        <h:outputText value="#{v.updateBy}" />
                                        </p:column>
                                        <p:column sortBy="#{v.statusName}" headerText="Status">
                                            <h:outputText value="#{v.statusName}" />
                                        </p:column>
                                        <p:column sortBy="#{v.updateDate}" headerText="Updated On">
                                            <h:outputText value="#{v.updateDate}" />
                                        </p:column>
                                    </p:dataTable>

豆是

public List<RecentItemDashDTO> getTopTenMenuItem() {
    Map<String, Object> sessMap = CommonUtil.getSessionMap();
    SessionDTO sessionDTO = (SessionDTO) sessMap.get(WebConstants.SESSION_DTO);
    countryCode = sessionDTO.getLoggedinCountryCode();
    String languageCode = sessionDTO.getDefaultLanguageCode();
    topTenMenuItem = dashboardService.getTopTenRecentMenuDashData(countryCode,languageCode);
    return topTenMenuItem;
}

public void setTopTenMenuItem(List<RecentItemDashDTO> topTenMenuItem) {
    this.topTenMenuItem = topTenMenuItem;
} 
4

2 回答 2

0

我自己的经验表明,要使用此功能,您需要List在 BackingBean 中有一个带有 getter 和 setter 的对象。不是参考。尝试使用任何 init 方法,让我们知道它是否有效。

public class DashboardBean {

private List<RecentItemDashDTO> myList;

public List<RecentItemDashDTO> getMyList()
{
    return myList;
}

public void setMyList(List<RecentItemDashDTO> myList)
{
    this.myList = myList;
}

public List<RecentItemDashDTO> getTopTenMenuItem()
{
    Map<String, Object> sessMap = CommonUtil.getSessionMap();
    SessionDTO sessionDTO = (SessionDTO)sessMap.get(WebConstants.SESSION_DTO);
    countryCode = sessionDTO.getLoggedinCountryCode();
    String languageCode = sessionDTO.getDefaultLanguageCode();
    topTenMenuItem = dashboardService.getTopTenRecentMenuDashData(countryCode, languageCode);
    return topTenMenuItem;
}

@PostConstruct
public void init()
{
    myList = getTopTenMenuItem();
}

}

XHTML:

<p:dataTable value="#{dashboardBean.myList}" ... >
于 2013-11-08T12:50:17.027 回答
0

我得到了另一种排序解决方案。

private String initList;
public String getInitList() {
            myTopTenMenuItem=getTopTenMenuItem();
            return null;
}

并在 xhtml

<h:form name="form" prependId="false">
                    <h:inputHidden value="#{dashboardBean.initList}" />
于 2013-11-11T15:36:47.443 回答