我试图遍历已在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仅针对过滤的行进行迭代。
答案 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();
.
.
.
}
}