Primefaces:如何在Java中获取当前的排序顺序?

时间:2017-02-22 14:22:03

标签: java sorting jsf primefaces

是否有可能在Java中获得当前的排序?

以下是按年分类汽车的示例:

<p:column headerText="Year" sortBy="#{car.year}">
    <h:outputText value="#{car.year}" />
</p:column>

通过扩展LazyDataModel<T>,可以覆盖以下方法:

public List<T> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String,Object> filters) {
    throw new UnsupportedOperationException("Lazy loading is not implemented.");
}

但我想知道如何在不使用LazyDataModel的情况下执行此操作。

谢谢!

1 个答案:

答案 0 :(得分:4)

正如Jasper de Vries评论的那样,您可以将p:dataTable绑定到后端的变量:

<强>的facelet

Display(request,response);

bean类

<p:dataTable binding="#{bean.dataTable}" ...>

或者,您可以通过提交数据表的clientId从视图根目录获取dataTable:

private DataTable dataTable;

public DataTable getDataTable() {
   return dataTable;
}

public void setDataTable(DataTable dataTable) {
    this.dataTable = dataTable;
}

public void methodToAccessSortOrder() {
   String sortOrder = this.dataTable.getSortOrder();
   // do anything with sortOrder
}