不确定如何最好地表达标题,但要点如下。
目标是检索表中所有选定的行并操作它们。我遇到的问题是,第一次调用支持 bean 中的方法时,RowSetIterator 不会被填充。当第二次调用时,它确实会被填充。
如何让它在第一次调用时正常工作?
毫无疑问,我不是很清楚,如果您需要任何其他信息,请告诉我。这是 bean 方法的片段:
public String deleteSelectedQueries()
{
JSFUtils.addInformationMessage("Delete");
RowKeySet selectedQueries =
getSavedQueriesByUserTable().getSelectedRowKeys();
Iterator selectedQueriesIter = selectedQueries.iterator();
DCBindingContainer bindings =
(DCBindingContainer) BindingContext.getCurrent().getCurrentBindingsEntry();
DCIteratorBinding savedQueriesByUserIter =
bindings.findIteratorBinding("SavedQueriesByUserROVOIterator");
RowSetIterator savedQueriesByUserRowSetIterator =
savedQueriesByUserIter.getRowSetIterator();
while (selectedQueriesIter.hasNext())
{
Key key = (Key) ((List) selectedQueriesIter.next()).get(0);
Row currentRow = savedQueriesByUserRowSetIterator.getRow(key);
System.out.println(currentRow.getAttribute("QueryName"));
}
return null;
}
}
有什么想法吗?
谢谢!
最佳答案
这段代码对我来说看起来不错。
问题可能来自<af:table>
标签,请确保已删除这些标签:
selectedRowKeys="#{bindings.SavedQueriesByUserROVO.collectionModel.selectedRow}"
selectionListener="#{bindings.SavedQueriesByUserROVO.collectionModel.makeCurrent}"
关于java - Oracle ADF 选择多行时,RowSetIterator 在第一次方法调用时不会填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29910048/