use*_*794 4 sorting grid tapestry
我想指定一个挂毯网格的默认排序列.
我知道我可以在服务器端对我的getter中的记录进行排序,但这似乎是不必要的努力,因为网格完全能够对它自己进行排序.
所以我的网格定义如下:
<t:grid source="queues" inPlace="true"> </t:grid>
Run Code Online (Sandbox Code Playgroud)
getQueues返回对象集合,如:
public class Queue {
public String getName();
public float getOccupancy();
}
Run Code Online (Sandbox Code Playgroud)
我希望默认情况下按照"占用"属性以后代顺序对网格进行排序.
从我看到的Tapestry文档中,Grid具有属性sortModel,它似乎是正确的选项.但是我找不到很好的解释,将它设置为正确的值.
您可以编写一个mixin来设置初始排序
@MixinAfter
public class DefaultSort {
public enum Order { ASCENDING, DESCENDING };
@Parameter(required=true, defaultPrefix="literal")
private String sort;
@Parameter(defaultPrefix="literal", value="literal:ascending")
private Order order;
@InjectContainer
private Grid grid;
@SetupRender
void setupRender() {
GridSortModel sortModel = grid.getSortModel();
if (sortModel.getSortConstraints().isEmpty()) {
sortModel.updateSort(sort);
if (order == Order.DESCENDING) {
// updateSort a second time for DESCENDING
sortModel.updateSort(sort);
}
}
}
}
<t:grid source="queues" inPlace="true" t:mixins="defaultsort" sort="occupancy" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1607 次 |
| 最近记录: |