ADF RichTable中添加sortListener

本文介绍如何在使用ViewObject的不同查询模式下,通过手动设置排序方式来覆盖默认排序,确保RichTable展示的数据按照预期进行排序。

由于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}"


这样就可以了,不会出现默认的排序,只排序数据库的几个数据了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值