0

ユーザーがあるリストから別のリストにアイテムを転送するときに、Bean 内のリストを更新したいと考えています。それを行う方法はありますか?

どうも。

4

2 に答える 2

2

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>
于 2012-05-17T05:17:44.460 に答える
0

あなたが何を望んでいるのか正確にはわかりません。これは、何かを入力した場合と同じように自動的に行われ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

于 2012-05-16T19:24:53.057 に答える