我找不到如何在主要选项列表中选择元素列表(目标)。
<p:pickList id="pojoPickList" value="#{associationMBean.allVisas}" itemValue="#{visa}" itemLabel="#{visa.visaNum}" var="visa" style="width: 400px !important" converter="com.gis.visasmarketing.objectConverters.VisaConverter" required="true" showSourceControls="false" showTargetControls="false" showCheckbox="true"
showSourceFilter="true" showTargetFilter="true" filterMatchMode="contains" >
<f:facet name="sourceCaption">All Visas</f:facet>
<f:facet name="targetCaption" >Selected Visas</f:facet>
<p:ajax event="transfer" listener="#{associationMBean.onTransfer}" />
<p:column style="width:75%;">
#{visa.visaNum} #{visa.traveller.firstName} #{visa.traveller.lastName}
</p:column>
</p:pickList>
此选项列表工作正常:它将值从一个列表移动到另一个列表。但我不知道如何在目标列表中选择元素以使用命令按钮来保留它们。
请帮忙吗?
答案 0 :(得分:3)
p:ajax没问题,如果没有调用bean,请尝试将PF更新为4.0
如果您想在命令按钮上获取选项列表目标,只需使用:picklist.getTarget();
如果您想在onTransfer事件中执行此操作,请执行以下操作:
private DualListModel<yourEntity> allVisas = new DualListModel<yourEntity>();
public void onTransfer(){
List<yourEntity> target = allVisas.getTarget();
}
答案 1 :(得分:0)
TransferEvent有getItems()方法。它包含转移的物品。您可以使用这些方法来检查触发侦听器的事件:
isAdd():是从源传输到目标
isRemove():从目标转移到源
代码:
public void onTransfer(TransferEvent event){
if(event.isAdd())
//persist event.getItems()
(...)
}