jsf - tr 的默认排序 :table?

标签 jsf default trinidad

有没有办法使用 tr:table 对显示在 UI 上的初始数据进行排序?我知道可以在 tr:column 上定义排序属性,这些属性用于对表中存在的数据进行排序。

但是这里的需求是在打开页面时默认对数据进行排序。除了从后端对表数据进行排序之外,还有其他方法吗?

最佳答案

默认情况下您无法对表格进行排序,但您必须以编程方式进行排序。通过一些工作,您可以编写一个可重用的 PhaseListener 您可以从 JSF 页面控制它。

确保只有handles a single phase (例如 PhaseId.RESTORE_VIEW )并使用它来设置使用 setSortCriteria 的排序顺序:

List<SortCriterion> sortCriteria = new ArrayList<SortCriterion>(1);
String property = "myProperty";
boolean ascending = true;
sortCriteria.add(new SortCriterion(property, ascending));
myCoreTable.setSortCriteria(sortCriteria);

现在你只需要添加两个<f:attribute/> s 在你的表上传递属性名称和升序 bool 值,这样你就可以为你的所有表创建一个可重用的监听器。

在你的<tr:document>你可以有一个<f:attribute/>包含要处理的表 ID 列表。

关于jsf - tr 的默认排序 :table?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11258276/

相关文章:

javascript - 通过 ClientListerner 以编程方式触发/模拟点击事件

jsf - 用户界面为 :include 的无效路径

javascript - 特立尼达的屏蔽输入字段

jsf - Trinidad/ADF Faces、文件上传、EOFException

multithreading - 从线程设置 bean 属性

jsf - 通过 post 在 url 中设置参数

mysql - 创建具有显式默认字符集的 mysql 表,如果我不这样做怎么办?

c++ - 利用 move 语义自动隐式生成 ctors

MySQL 列默认值 - 优点/缺点,我应该用于所有列吗?

html - JSF 特立尼达 tr :table css issue