关键字:ADF, JDeveloper, table
在ADF框架中,选择af:table中的所有行有很多方法,下面介绍两种比较常见的操作。
1,Ctrl+a
使用"Ctrl+a"可以选择ADF table中的所有行。将光标放在table中的任意位置,然后使用快捷键"Ctrl+a"。
使用下面的方法打印选中行的信息:
public void checkSelected(ActionEvent actionEvent) {
// Add event code here...
Iterator it = empTable.getSelectedRowKeys().iterator();
System.out.println("we have " + empTable.getSelectedRowKeys().size() + " rows selected");
while (it.hasNext()) {
Object key = it.next();
System.out.println(key);
}
}
2,自定义按钮事件来选择表里的所有行
创建commandButton:
<af:commandToolbarButton partialSubmit="true" text="selectAll" id="cb1"
actionListener="#{multiSelectBean.selectAll}">
</af:commandToolbarButton>

按钮绑定的方法:
public void selectAll(ActionEvent actionEvent) {
// Add event code here...
selectAllRowsInTable();
}
public void selectAllRowsInTable() {
RowKeySet rks = new RowKeySetImpl();
CollectionModel model = (CollectionModel)empTable.getValue();
int rowcount = model.getRowCount();
for (int i = 0; i < rowcount; i++) {
model.setRowIndex(i);
Object key = model.getRowKey();
rks.add(key);
}
empTable.setSelectedRowKeys(rks);
}
3,易犯错误
如果在创建table的时候选择'Row Selection',会产生下面的错误: