是否可以在 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 的情况下执行此操作。
谢谢!
最佳答案
正如 Jasper de Vries 评论的那样,您可以将 p:dataTable 绑定(bind)到后端的一个变量:
小面孔
<p:dataTable binding="#{bean.dataTable}" ...>
bean 类
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
}
或者,您可以通过提交数据表的 clientId 从 View 根获取数据表:
public void methodToAccessSortOrder() {
DataTable dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent("<CLIENT ID OF DATATABLE>");
String sortOrder = dataTable.getSortOrder();
// do anything with sortOrder
}
关于java - Primefaces:如何获取 Java 中的当前排序顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42394136/