2013-03-06 83 views
0
<h:panelGrid columns="3" > 
       <p:inputText styleClass="textbox" id="search" style="margin-top:30px;width: 340px !important;" value="#{testBean.name}"/> 
       <p:watermark for="search" value="searchText" /> 
       <p:commandButton value="search" process="@form" styleClass="btn-primary" style="margin-top:18px;" action="#{testBean.search}" update="aaa"/> 
    </h:panelGrid> 


    <p:pickList id="aaa" value="#{testBean.searchList}" var="contact" 
       itemLabel="#{contact.firstName}" itemValue="#{contact}" rendered="true" > 
      <!--  <p:ajax event="transfer" listener="#{contactManagedBean.onTransfer}" />--> 
    </p:pickList> 

和行动方法是素面选中列表中未更新

public DualListModel<ContactBean> search(){ 

      String searchString= getSearch(); 

       contacts= manageConatctDelegate.search(searchString); 

       List<ContactBean> contactTarget= new ArrayList<ContactBean>(); 
       contactsSource.add(contacts.get(0)); 
       contactList = new DualListModel<ContactBean>(contactsSource,contactTarget);       

     return contactList; 
    } 

我的选择列表例如工作。我有一个输入框,可以在其中搜索名称。我有一个方法来搜索将检索联系人对象的字符串。在调用搜索方法后,我正在更新列表。我检查了名单,名单正在接触。但仍然选择列表在页面上空白。

回答

0

你想做什么返回DualListModel<ContactBean>?它不能这样做。你的方法应该是void,你应该把searchList bean的属性设置为你的contactList。事实上,你应该有:

private DualListModel<ContactBean> searchList; 

public void setSearchList(DualListModel<ContactBean> searchList) { 
    this.searchList = searchList; 
} 

public DualListModel<ContactBean> getSearchList() { 
    return searchList; 
} 

,并在您search方法,你应该设置该属性:

searchList = new DualListModel<ContactBean>(contactsSource,contactTarget); 
+0

我已经改变了代码,按您的建议,现在searchList我的搜索方法中的设置值,但仍然选择清单是空的。可能是什么问题?控制台上没有任何例外。 – shreekanth 2013-03-06 10:53:48

+0

您调试方法搜索?列表不是空的?同样因为你的'itemValue'是'#{contact}',不仅仅是一些简单的时间,你应该提供转换器。 – partlov 2013-03-06 10:59:11