Primefaces PickList在传输时更新目标列表

时间:2012-05-16 16:18:52

标签: primefaces target transfer

当用户将项目从一个列表传输到另一个列表时,我想更新bean中的列表。有没有办法做到这一点?

THX。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

我不知道你想要什么。这是自动完成的,就像您在p:inputText中键入内容一样,它在表示p:inputText的值的beans属性中可用而无需手动更新。

只需使用pickListgetTarget()方法访问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的左侧。