ZK listbox 两种分页使用及比较
2015-12-10 17:34
302 查看
参考:/article/4082499.html
以下代码模拟数据量大时情况,采用“<paging>”组件方式
前台Listbox.zul :
View Code
效果:
以下代码模拟数据量大时情况,采用“<paging>”组件方式
前台Listbox.zul :
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); } }
View Code
效果:
相关文章推荐
- 无法解析具体reference那个同名文件
- 开发环境配置--Ubuntu+Qt4+OpenCV(三)
- Ghost博客安装
- 老李分享:使用 Python 的 Socket 模块开发 UDP 扫描工具3
- 继承ActionBarActivity,被画横线,过时为题
- [Javascript] JSONP(未完成)
- centos6系统优化脚本
- C#窗体应用程序实现cocos2dx json文件自动生成lua文件
- 老李分享:使用 Python 的 Socket 模块开发 UDP 扫描工具2
- EventBus 源码解析
- Activity 跳转到 Fragment
- docker无法上传镜像到本地仓库
- Protocol Buffer技术详解(数据编码)
- HBase集群搭建+HA配置
- [FreeRadius2]遇到问题记录
- tomcat NIO工作流程
- 老李分享:使用 Python 的 Socket 模块开发 UDP 扫描工具1
- 谈谈独立游戏的商业化困境
- WebApi2 入门实例1
- [FreeRadius2]遇到问题记录