我需要使用java在zkoss中为列表框添加值 - 我的意思是动态值。
我喜欢这样的
<window id="win_1" use="com.test.tets">
<listbox id="a">
<listhead>
<listheader label="Name" />
<listheader label="Age" />
<listheader label="Sex" />
</listhead>
<listitem id="i">
</listitem>
</listbox>
</window>
我需要将mysql db中的值添加到此列表框中。我怎么能这样做?
答案 0 :(得分:1)
您可以使用Listmodel执行此操作,请参阅此文章 - Using a ListModel adn ListitemRenderer
答案 1 :(得分:0)
您可以使用listmodel列表,例如:
yourListBox.setModel(new ListModelList<BeanClass>(beanDao.findAll()));
yourListBox.setItemRenderer(new ListItemRenderer<BeanClass>) {
@Override
public void render(Listitem item, BeanClass data, int index) throws Exception {
Listcell cell = new Listcell();
cell.appendChild(new Label(data.getFoo()));
item.appendChild(cell);
}
});
答案 2 :(得分:0)
MVVM方法
你的zul文件
<window id="win_1" use="com.test.tets"
apply="org.zkoss.bind.BindComposer"
viewModel="@id('vm') @init('your view model class')">
<listbox id="a" model="@load(vm.listModel)">
<listhead>
<listheader label="Name" />
<listheader label="Age" />
<listheader label="Sex" />
</listhead>
<template name="model">
<listitem>
components that will represent a row in listbox...
</listitem>
</template>
</listbox>
</window>
您的观点模型
public class SampleViewModel
{
private ListModelList<class that respresent row> listModel;
@Init
public void init()
{
init your model here....
}
public ListModelList<class that respresent row> getListModel{
return this.listMode;
}
public void setListModel(ListModelList<class that respresent row> listModel)
{
this.listModel=listModel;
}
}
列表模型列表还将处理视图模型更改的通知。