使用java将值添加到zkoss中的列表框中

时间:2010-12-09 06:40:14

标签: java zk

我需要使用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中的值添加到此列表框中。我怎么能这样做?

3 个答案:

答案 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;
     }
}

列表模型列表还将处理视图模型更改的通知。