当用户将项目从一个列表传输到另一个列表时,我想更新bean中的列表。有没有办法做到这一点?
THX。
答案 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属性中可用而无需手动更新。
只需使用pickList
或getTarget()
方法访问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
的左侧。