VwpFAQCheckboxInTableJa
チェックボックス: 表でどのチェックボックスが選択されたかを判定する方法を教えてください。
表にチェックボックスを追加する方法とどのチェックボックスが選択されたかを判定する方法を次に示します。
1. SessionBean1 に java.util.Set 型の selectedRows という名前のプロパティーを追加します。
2. SessionBean1 の init() メソッドに次のコードを追加します。
selectedRows = new HashSet();
3. SessionBean1 に boolean 型の selected という名前のプロパティーを追加します。
4. 取得メソッドと設定メソッドを次のコードに変更します。
/**
* Getter for property selected
* @return true if checkbox in current row is selected
*/
public boolean isSelected() {
TableRowDataProvider rowData = (TableRowDataProvider) getBean("currentRow");
if (rowData == null) {
return false;
} else {
String rowId = rowData.getTableRow().getRowId();
if (this.getSelectedRows().contains(rowId)) {
return true;
} else {
return false;
}
}
}
/**
* Setter for property selected.
* @param boolean; true if checkbox is selected, false if checkbox is cleared.
*/
public void setSelected(boolean b) {
TableRowDataProvider rowData = (TableRowDataProvider) getBean("currentRow");
if (rowData != null) {
String rowId = rowData.getTableRow().getRowId();
if (b) {
this.getSelectedRows().add(rowId);
} else {
this.getSelectedRows().remove(rowId);
}
}
}
5. チェックボックスコンポーネントの selected プロパティを SessionBean1 > selected にバインドします。
6. 次のようなコードを使用して、どのチェックボックスが選択されたかを判定できます。
Iterator rows = getSessionBean1().getSelectedRows().iterator();
while (rows.hasNext()) {
String rowId = (String) rows.next();
RowKey rowKey = <表のデータプロバイダ>.getRowKey(rowId);
... row キーを使用してデータプロバイダーのデータにアクセスします
}
- 日本語訳 : Yuko Ohsumi
- 英文 (翻訳したバージョン: 1)
- 日本語 NetBeans Visual Web Pack ユーザー FAQ へ戻る
