2013-05-22 4 views
3

Я впервые обращался к p:picklist, и мне грозит проблема, когда я не могу получить исходные и целевые значения, обновленные как в p:picklist ui. Я использую список DualListModel<String>. Вот код ..p: pickList не обновляет источник и цель

Пожалуйста, помогите мне. Спасибо за помощь!

code.xhtml

<p:dataTable value="#{updateSiteObj.dsList}" var="pickListObjDS" > 
    <p:column headerText="DS"> 
     <p:pickList id="pojoPickListDSID" value="#{pickListObjDS}" var="ds" itemValue="#{ds}" itemLabel="#{ds}" showSourceFilter="true" showTargetFilter="true" filterMatchMode="contains" style="border-color: white!important" onTransfer="ajaxSubmit3()"> 
      <f:facet name="sourceCaption">Available</f:facet> 
      <f:facet name="targetCaption">To be removed</f:facet> 
     </p:pickList> 
     <p:remoteCommand action="#{updateSiteObj.onDSTransfer}" name="ajaxSubmit3"/> 
    </p:column> 
</p:dataTable> 

UpdateSite.java

@ManagedBean(name = "updateSiteObj") 
@SessionScoped 
public class UpdateSite { 

    private List<DualListModel<String>> dsList = new ArrayList<DualListModel<String>>(); 

    public List<DualListModel<String>> getDsList() { 
     return dsList; 
    } 

    public void setDsList(List<DualListModel<String>> dsList) { 
     this.dsList = dsList; 
    } 

    public String updateSiteDetails() { 

     ds.add(sg.getPrimaryDSID()); 
     if (sg.getSecondaryDSID() != null) { 
      ds.add(sg.getSecondaryDSID()); 
     } 

     System.out.print("DS:" + sg.getPrimaryDSID() + "=>" + sg.getSecondaryDSID()); 
     DualListModel<String> tempDS = new DualListModel<String>(); 
     tempDS.setSource(ds); 
     dsList.add(tempDS); 
     return "someSite?faces-redirect=true"; 
    } 

    public void onDSTransfer() { 
     System.out.print("DSTransfer"); 
     for (DualListModel<String> str1 : dsList) { 
      System.out.print("RemovedLBEntry:"); 
      for (String dsName1 : str1.getTarget()) { 
       System.out.print("RemovedLB:" + dsName1); 
      } 
     } 
    } 
} 

Когда я пытаюсь вызвать onDSTransfer после перемещения значения из исходной панели целевой панели в picklist UI не показывает никакой ценности от цели.

+0

Где находятся столбцы для вашего выбора? –

+0

i don get u .. столбцы будут добавлены на основе ярлыка элемента, который уже существует – coder123

+1

Я думаю, что это проблема с конвертером. Проверьте свой конвейер. – herry

ответ

1

Добавить update="@all" в p:remoteCommand.

Вы делаете вызов ajax и не обновляете свой интерфейс.

<p:remoteCommand action="#{updateSiteObj.onDSTransfer}" name="ajaxSubmit3" update="@all"/> 
+0

Использование 'update =" @ all "' для базовых нормальных обновлений - это плохая практика. Это следует использовать только в особом случае, это не один из них, на мой взгляд. Найдите еще что-нибудь, что можно обновить ... – Kukeltje