IdusOrtus
IdusOrtus

Reputation: 1116

Oracle ADF When Selecting Multiple Rows, RowSetIterator Does Not Populate on First Method Invocation

Uncertain how best to word the title, but here's the gist.

The goal is to retrieve all selected rows of a table and manipulate them. The problem I'm bumping into is that the RowSetIterator doesn't get populated the first time the method within my backing bean is invoked. It does get populated when invoked a second time.

How do I go about getting it to work properly on the first invocation?

Doubtless I'm not being perfectly clear, please let me know if you require any additional information. Here's a snippet of the bean method:

  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;
  }
}

Any ideas?

Thanks!

Upvotes: 0

Views: 879

Answers (1)

Florin Marcus
Florin Marcus

Reputation: 1657

This code looks good to me.

The problem may come from <af:table> tag, make sure you have these tags removed:

selectedRowKeys="#{bindings.SavedQueriesByUserROVO.collectionModel.selectedRow}"
selectionListener="#{bindings.SavedQueriesByUserROVO.collectionModel.makeCurrent}"

Upvotes: 1

Related Questions