0

我有一个代码:

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

但是,当单击按钮时,它会获取列表,但未显示带有值的选项列表。我怎样才能正确显示选项列表?请提出建议。

4

1 回答 1

0

您不能动态更新未呈现的组件,您应该移动您的rendered属性,以便您的组件始终存在。

<h:panelGroup id="picklist">
    <p:pickList rendered="#{not empty customCalender.searchList}" value="#{customCalender.searchList}" var="user" itemLabel="#{user}" itemValue="#{user}"/>
</h:panelGroup>
于 2013-06-26T13:20:18.927 回答