ユーザーがあるリストから別のリストにアイテムを転送するときに、Bean 内のリストを更新したいと考えています。それを行う方法はありますか?
どうも。
ユーザーがあるリストから別のリストにアイテムを転送するときに、Bean 内のリストを更新したいと考えています。それを行う方法はありますか?
どうも。
xhtml で:
<p:pickList value="#{myBean.myDepartment}" onTransfer="handleTransfer(e)"....>
ビーンで:
List<Department> selectedDepartments = new ArrayList<Department>();
List<Department> availableDepartments = getAvailableDepartments();
private DualListModel<Department> myDepartment;
myDepartment = new DualListModel<Department>(availableDepartments, selectedDepartments);
コミット時に、ユーザーが選択した部門には、selectedDepartments を使用してアクセスできます。
そしてスクリプト...
<script type="text/javascript">
function handleTransfer(e) {
item = e.item;
alert(item.text());
fromList = e.from;
toList = e.to;
type = e.type; //type of transfer; command, dblclick or dragdrop)
}
</script>
あなたが何を望んでいるのか正確にはわかりません。これは、何かを入力した場合と同じように自動的に行われp:inputText
、値を表す Bean プロパティで使用でき、p:inputText
手動で更新する必要はありません。
pickList
withgetTarget()
またはgetSource()
メソッドで更新された値にアクセスするだけです。あなたはおそらくあなたがlists
提供したものにDualListModel
直接アクセスしようとしています:
DualListModel<fooType> fooModel = new DualListModel<fooType>(fooList1,fooList2);
// transfer item
// check if fooList2 is updated - this is wrong, it is **not** updated
fooModel.getTarget(); // this way you can get the actual values of target list
target
- 右側、source
- の左側pickList
。