标签:
参考:http://tsinglongwu.iteye.com/blog/849923
以下代码模拟数据量大时情况,采用“<paging>”组件方式
前台Listbox.zul :
<?page title="Listbox使用" contentType="text/html;charset=UTF-8"?> <zk xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.zkoss.org/2005/zul" xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul"> <window id="listboxWin" border="normal" apply="test.ListboxCtrl"> <listbox id="listbox"> <listhead sizable="true" > <listheader id="nameListHeader" label="姓名" align="center"/> </listhead> </listbox> <paging id="pagetest" pageSize="10" totalSize="50000" detailed="true"/> </window> </zk>
ListboxCtrl.java :
package test; import java.util.ArrayList; import java.util.List; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.util.GenericForwardComposer; import org.zkoss.zul.Label; import org.zkoss.zul.ListModelList; import org.zkoss.zul.Listbox; import org.zkoss.zul.Listcell; import org.zkoss.zul.Listitem; import org.zkoss.zul.ListitemRenderer; import org.zkoss.zul.Paging; import org.zkoss.zul.event.PagingEvent; public class ListboxCtrl extends GenericForwardComposer<Component>{ private static final long serialVersionUID = 1L; private Listbox listbox; private ListModelList<String> model; private List<String> testList = new ArrayList<String>(); private Paging pagetest; private int count = 1; @Override public void doAfterCompose(Component comp) throws Exception { // TODO Auto-generated method stub super.doAfterCompose(comp); //填充第一页数据 for (int i = 1; i < pagetest.getPageSize()+1; i++) { testList.add(i+""); } model = new ListModelList<String>(testList); listbox.setModel(model); listbox.setItemRenderer(new testItemRenderer()); //监听分页改变事件 pagetest.addEventListener("onPaging", new EventListener<Event>() { @Override public void onEvent(Event event) throws Exception { // TODO Auto-generated method stub PagingEvent pe = (PagingEvent) event; redraw(pe.getActivePage()+1,pagetest.getPageSize()); } }); } public class testItemRenderer implements ListitemRenderer<String>{ @Override public void render(Listitem item, String data, final int index) throws Exception { // TODO Auto-generated method stub item.setValue(data); Listcell listcell2 = new Listcell(); Label label = new Label(data); listcell2.appendChild(label); listcell2.setParent(item); } } private void redraw(int activePage,int pageSize) { //清空所有数据 listbox.getItems().clear(); testList.clear(); int total = activePage * pageSize; for (int i = total-pageSize+1; i <= total; i++) { //当超过总页数时 if (i > pagetest.getTotalSize()) { break; } testList.add(i+""); } model = new ListModelList<String>(testList); listbox.setModel(model); } }
效果:
标签:
原文地址:http://www.cnblogs.com/langdangyunliu/p/5036743.html