我正在使用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>
和bean是
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;
}
答案 0 :(得分:0)
我自己的经验表明,要使用此功能,您需要在BackingBean中使用List
对象,并使用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}" ... >
答案 1 :(得分:0)
我有另一种分类解决方案。
private String initList;
public String getInitList() {
myTopTenMenuItem=getTopTenMenuItem();
return null;
}
和xhtml
<h:form name="form" prependId="false">
<h:inputHidden value="#{dashboardBean.initList}" />