2013-06-26 2 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 спискупоиска;

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

Но когда кнопка нажата она получает список, но и PickList со значениями, не показаны. Как я могу сделать это правильно, чтобы показать список? Пожалуйста, предложите.

ответ

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