2010-12-09 35 views
0

我需要使用java將值添加到zkoss中的列表框 - 我的意思是動態值。使用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增加值分貝到這個列表框一個ZUL。我怎樣才能做到這一點?

回答

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); 
     } 
    }); 
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; 
    } 
} 

列表模型列表還將處理視圖模型中更改的通知。

相關問題