在过滤表格行时对其进行迭代

时间:2014-11-11 19:19:50

标签: oracle-adf

我试图遍历已在ADF中的Fusion Application中过滤的表中的行。该表是从DataControl创建的。通常,我遍历与表关联的视图对象,但如果在表仍处于过滤状态时发出请求,则视图对象仅迭代已过滤的行。这是我到目前为止的代码

public void SelectingAll() {

    DCBindingContainer dcb = (DCBindingContainer) evaluateEL("#{bindings}");
    DCIteratorBinding dciter =dcb.findIteratorBinding("DimEntidadView1Iterator");        
    ViewObject vo = dciter.getViewObject();

    Row row = vo.first();
    vo.reset();        

    while (row != null) {

        row.setAttribute("SelectEnt","true");
        row = vo.next();
    }

}

问题是如果在仍然过滤表的情况下执行该方法,则ViewObject仅针对过滤的行进行迭代。

1 个答案:

答案 0 :(得分:1)

我认为迭代器完全是为了这个工作而做的,你不需要访问ViewObject,想一下,如果表不是基于ViewObject会怎么样?您可以在不引用后端实现的情况下执行此类操作:

    public void SelectingAll() {
        DCBindingContainer dcb = (DCBindingContainer) evaluateEL("#{bindings}");
        DCIteratorBinding dciter =dcb.findIteratorBinding("DimEntidadView1Iterator"); 

        RowSetIterator rsi = dciter.getRowSetIterator();
        while (rsi.hasNext()) {
            Row r = rsi.next();
            .
            .
            .
        }
    }