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

标签 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 的情况下执行此操作。

谢谢!

最佳答案

正如 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/

相关文章:

java - Android-Firebase-为每个用户创建一个数据文件

java - 未出现启动窗口 - Swing

Java RegEx - 对于不包含 "."的整数

java - 对不可比较的对象进行排序

c# - 将数字列表分组为类似数字的固定集合(首选循环移位)

java - 如果一个java pojo被声明为一个对象,那么如何根据运行时类型控制jackson序列化?

java - 如何在 Java 中使用多行 lambda 表达式对 int[] 进行排序

css - 更改图形图像中特定部分的颜色

java - ICEfaces 与 RichFaces 的详细比较?

jsf - 如何在 EL 中获取当前组件的 id