默认排序tr:table?

时间:2012-06-29 08:12:32

标签: jsf default trinidad

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

但这里的要求是在打开页面时默认对数据进行排序。有没有办法做到这一点,除了从后端排序表数据?

2 个答案:

答案 0 :(得分:2)

默认情况下,您无法对表进行排序,但必须以编程方式对其进行排序。通过一些工作,您可以编写一个可重用的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/>来传递属性名和升序布尔值,这样你就可以为所有表创建一个可重用的监听器。

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

答案 1 :(得分:1)

据我所知:不!

您可以从这里阅读以获取更多信息: "TRINIDAD-1491"