由于ViewObject有多种query mode:ViewObject.QUERY_MODE_SCAN_DATABASE_TABLES(数据库),ViewObject.QUERY_MODE_SCAN_VIEW_ROWS(页面缓存)。
在设置了一种query mode的时候,绑定到RichTable的ViewObject的默认排序可能会失效,我们可以这样操作。
1,在manage
bean中添加sort method:
public void sortMethod(SortEvent event){
DCIteratorBinding iter = ADFUtils.findIterator("xxxxVOIterator");
String propery = event.getSortCriteria().get(0).getProperty();
String isAsending =
event.getSortCriteria().get(0).isAscending() == true ? "asc" : "desc";
ViewObject vo = iter.getViewObject();
vo.setSortBy(propery + "
" + isAsending);
vo.setQueryMode(ViewObject.QUERY_MODE_SCAN_VIEW_ROWS);
vo.executeQuery();
vo.setSortBy(null);
//去除排序基准
SortCriteria[] sc = new SortCriteria[0];
iter.applySortCriteria(sc);
}
|
2,在RichTable中添加sort
listener
<af:table .....
sortListener="#{backing_xxx.sortMethod}"
这样就可以了,不会出现默认的排序,只排序数据库的几个数据了。