2013-06-26 29 views
0

我有一個代碼:<p:pickList>沒有顯示在按鈕點擊

<h:panelGroup> 
<p:panel> 
    <p:commandButton value="Go" style="background:#25A6E1;color:#fff;font-family:'Helvetica Neue',sans-serif;font-size:10px;border-radius:4px;" 
     actionListener="#{customCalender.searchUserofList}" update="picklist"> 
      <f:attribute name="trigram" value="#{customCalender.listTrig}"/> 
      <f:attribute name="firstName" value="#{customCalender.listFname}"/> 
      <f:attribute name="lastName" value="#{customCalender.listLname}"/> 
      <f:attribute name="teamName" value="#{customCalender.selectedTeam}"/> 
    </p:commandButton> 
</p:panel> 
</h:panelGroup> 
<h:panelGroup id="picklist" rendered="#{not empty customCalender.searchList}"> 
    <p:pickList value="#{customCalender.searchList}" var="user" itemLabel="#{user}" itemValue="#{user}"/> 
</h:panelGroup> 

searchList在該方法中生成searchUserofList()上按鈕的點擊。

我宣佈searchList爲:

私人DualListModel searchList;

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

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

和方法其被定義searchUserofList方法,如:

List<EmpBean> list = new ArrayList<EmpBean>(); 
    list = getSearchResult("people",trigram,firstName,lastName,teamName); 
    Iterator<EmpBean> iterator = list.iterator(); 
    List<String> userList = new ArrayList<String>(); 
    List<String> userTarget = new ArrayList<String>(); 
    while(iterator.hasNext()){ 

     String userName = iterator.next().getStrUserid(); 
     System.out.println("Name :: "+userName); 
     userList.add(userName); 
    } 
    searchList = new DualListModel<String>(userList, userTarget); 

但是,當按鈕點擊它獲得的名單,但與值領料單未出。 我該如何正確顯示選項列表?請建議。

回答

0

您不能動態更新未呈現的組件,您應該移動您的rendered屬性,以使組件始終存在。

<h:panelGroup id="picklist"> 
    <p:pickList rendered="#{not empty customCalender.searchList}" value="#{customCalender.searchList}" var="user" itemLabel="#{user}" itemValue="#{user}"/> 
</h:panelGroup> 
+0

感謝它工作:) – NDeveloper