0

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

4

3 回答 3

1

您可以使用 Listmodel 来执行此操作,请参阅这篇文章 -使用 ListModel 和 ListitemRenderer

于 2010-12-09T08:22:28.183 回答
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);
        }
    });
于 2012-12-14T07:18:42.900 回答
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;
     }
}

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

于 2015-06-03T19:07:39.497 回答