我在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 中有一个带有我的视图模型的类,并且是:
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 的列表。
但是我的列表框从不加载我的集合和我选择的项目。而且我不知道,会发生什么=(。
有人可以帮助我吗?
正如您设置multiple="true"
您需要使用 selectedItems
(带 s)而不是 selectedItem
。
另外,我相信您需要初始化您的mnoList集合:
Collection<String> mnoList = new HashSet<String>();