ZK框架中的SelectItem列表框

时间:2013-09-26 22:53:09

标签: java forms listbox zk zk-grid

我在ZK中有这个代码:

<zk xmlns="http://www.zkoss.org/2005/zul">    

 <window id="CreateList" border="normal" mode="modal" width="320px"
            apply="org.zkoss.bind.BindComposer"
            viewModel="@id('vm') @init('UserMno')">
    <label value="First Name"></label>
    <listbox model="@bind(vm.allMno)" checkmark="true" multiple="true" selectedItem="@bind(vm.mnoList)"/>
    <button id="closeBtn" hflex="1" label="close" onClick="CreateList.detach()" />
</window>

</zk>

我的想法是我有一个用户列表,如果用户点击,它有一个Mno的集合,当我打开一个新页面时,我的所有Mno必须加载到列表框中,但是mno的必须检查用户

我在Java中使用了我的viewModel,并且是:

public class UserMno {

Collection<String> mnoList;
Collection<String> allMno = MnoDAO.getAllMnosByName();

public Collection<String> getMnoList() {
    return mnoList;
}

public void setMnoList(Collection<String> mnoList) {
    this.mnoList = mnoList;
}

public Collection<String> getAllMno() {
    return allMno;
}

public void setAllMno(Collection<String> allMno) {
    this.allMno = allMno;
}


@AfterCompose
public void initSetup(@ExecutionArgParam("mnoList") Collection<String> mnoList) {
    this.mnoList=mnoList;
}


}

我传递用户的java是:

@Command
public void showModal(@BindingParam("languageContributionStatus") UserStatus mnoList) {
    //create a window programmatically and use it as a modal dialog.
    final HashMap<String, Object> map = new HashMap<String, Object>();
    setPickedItemSet(mnoList.getMnoList());
    map.put("mnoList", mnoList.getMnoList());
        win = (Window) Executions.createComponents("/com.users/CreateMnosUser.zul", null, map);
        win.doModal();

}

UserStatus是一个集合了Mno的类,当我选择一个用户时,我的用户是:mnoList。

然后这个想法是:

我在页面中有一个用户列表,我需要加载一个页面,在那个页面中,我需要加载一个用户mno用户关联的列表。

但是我的列表框永远不会用我选择的项目加载我的收藏。我不知道,发生了什么=(。

有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

在设置multiple="true"后,您需要使用selectedItems s selectedItem

另外我相信你需要初始化你的mnoList集合:

Collection<String> mnoList = new HashSet<String>();