首页 技术 正文
技术 2022年11月17日
0 收藏 532 点赞 4,424 浏览 2482 个字

参考: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);
}
}

效果:

ZK listbox 两种分页使用及比较

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,071
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,549
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,397
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,174
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,809
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,889