【问题标题】:Persist the target elements of picklist (primefaces)持久化选择列表的目标元素(primefaces)
【发布时间】:2014-01-20 08:18:15
【问题描述】:

我找不到如何保留在 primefaces 选项列表中选择的元素(目标)列表。

  <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> 

这个选择列表运行良好:它将值从一个列表移动到另一个列表。但我不知道如何让目标列表中选择的元素通过命令按钮持久化。

有什么帮助吗??

【问题讨论】:

    标签: jsf-2 primefaces picklist


    【解决方案1】:

    p:ajax 没问题,如果它没有调用 bean,请尝试将您的 PF 更新到 4.0

    如果您想在命令按钮上获取选项列表目标,只需使用:picklist.getTarget();

    如果您想在 onTransfer 事件中这样做,请执行以下操作:

    private DualListModel<yourEntity> allVisas = new DualListModel<yourEntity>();   
    
    public void onTransfer(){
    List<yourEntity> target = allVisas.getTarget();
    }
    

    【讨论】:

      【解决方案2】:

      TransferEvent 有 getItems() 方法。它包含转移的项目。您可以使用这些方法来检查哪些事件触发了监听器:

      isAdd() : 是从源转移到目标

      isRemove() : 是从目标转移到源

      代码:

      public void onTransfer(TransferEvent event){
           if(event.isAdd())
             //persist event.getItems()
           (...)
      }
      

      【讨论】:

        猜你喜欢
        • 2014-09-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多