나는 그다지 지저분하지 않은 일을 생각해 냈습니다. RichTable 객체에서 선택된 행 집합을 언제든지 얻을 수 있다는 것을 감안할 때 모든 행을 일시적으로 선택하여 선택한 행 집합을 가져올 수 있다고 결정했습니다.
경고 : 현재 응용 프로그램에서 내가 처리하는 테이블은 선택을 허용하도록 설정되어 있지 않으므로 새로 고침이 완료된 후에 선택을 지우는 것에 대해 걱정할 필요가 없습니다.
// set all rows in the table to selected so they can be iterated through
selectAllRowsInTable(rolesGrantedAndAvailableTable);
RowKeySet rSet = rolesGrantedAndAvailableTable.getSelectedRowKeys();
Iterator selectedEmpIter = rSet.iterator();
DCBindingContainer bindings = (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
DCIteratorBinding roleIter = bindings.findIteratorBinding("usersGrantedAndAvailableRolesView1Iterator");
RowSetIterator roleRSIter = roleIter.getRowSetIterator();
// iterate through all rows checking checkmark status and deciding if the roles need to be granted, revoked, or no action be taken
while(selectedEmpIter.hasNext())
{
// Do your stuff with each row here
}
내가 AMIS blogs에서 발견 된 모든 행을 선택하는 기능은
public void selectAllRowsInTable(RichTable rt)
{
RowKeySet rks = new RowKeySetImpl();
CollectionModel model = (CollectionModel)rt.getValue();
int rowcount = model.getRowCount();
for(int i = 0; i < rowcount; i++)
{
model.setRowIndex(i);
Object key = model.getRowKey();
rks.add(key);
}
rt.setSelectedRowKeys(rks);
}
이다 또는 당신은 시간의 과정에서 그것을 하나 개의 행을 선택하고 계속할 수 있습니다. 마지막에 오래된'RowKey'를 복원하십시오. – AppleGrew