ユーザーがあるリストから別のリストにアイテムを転送するときに、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手動で更新する必要はありません。
pickListwithgetTarget()または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。