`
徜徉の小溪
  • 浏览: 448115 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ZK Paging组件实现动态分页,描述很通俗易懂

    博客分类:
  • ZK
阅读更多

 

zul页面:

 

 

  zul 页面:
<?xml version="1.0" encoding="utf-8"?>
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" arg0="userWin"?>

<window id="userWin" width="100%" use="com.linktel.linkFax.web.zk.controller.UserController"
	xmlns:h="http://www.w3.org/1999/xhtml" xmlns:n="http://www.zkoss.org/2005/zk/native"
	xmlns="http://www.zkoss.org/2005/zul" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul/zul.xsd">

          <listbox id="userLbx" model="@{userWin.userList}" fixedLayout="true"   paginal="@{pagingUser}" selectedItem="@  
                     {userWin.user}">
                  <listhead sizable="true">
                    <listheader label="用户名"></listheader>
                    <listheader label="手机号"></listheader>
                    <listheader label="分机号"></listheader>
                    <listheader label="公司名称"></listheader>
                    <listheader label="部门名称"></listheader>
                    <listheader label="职位"></listheader>
                    <listheader label="传真"></listheader>
                     <listheader label="角色"></listheader>
                    <listheader label="启用状态"></listheader>
                    <listheader label="创建时间" ></listheader>
                   </listhead>
                   
                   <listitem self="@{each=user}" forEach="@{user.roles}">
                           <listcell label="@{user.username}"></listcell>
                           <listcell label="@{user.phone}"></listcell>
                           <listcell label="@{user.exten}"></listcell>
                           <listcell label="@{user.coname}"></listcell>
                           <listcell label="@{user.deptname}"></listcell>
                           <listcell label="@{user.position}"></listcell>
                           <listcell label="@{user.fax}"></listcell>
                           <listcell  label="@{each.name}"></listcell>
                           <listcell label="@{user.enabled}"></listcell>
                           <listcell label="@{user.createtime}"></listcell>
                   </listitem>
           </listbox>
				
           <paging id="pagingUser"  pageSize="2"></paging>
</window>
 

 

Java 代码绑定paging动态分页绑定数据

 

 

java  代码:
package com.linktel.linkFax.web.zk.controller;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.zkoss.zk.ui.Components;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.ext.AfterCompose;
import org.zkoss.zkplus.databind.AnnotateDataBinder;
import org.zkoss.zkplus.spring.SpringUtil;

import org.zkoss.zul.Window;
import org.zkoss.zul.api.Listbox;
import org.zkoss.zul.api.Paging;
import org.zkoss.zul.event.PagingEvent;

import com.linktel.linkFax.dao.support.Page;
import com.linktel.linkFax.domain.Authority;
import com.linktel.linkFax.domain.Role;
import com.linktel.linkFax.domain.User;
import com.linktel.linkFax.service.UserService;


@SuppressWarnings("serial")
public class UserController extends Window implements AfterCompose{
     
       private User user = new User();
	protected AnnotateDataBinder binder;
	public List<User> userList;
	protected Listbox userLbx;

	public User getUser() {
		return user;
	}
	public void setUser(User user) {
		this.user = user;
	}
        public  void setUserList(List<User> userList) {
		this.userList = userList;
	}

	@Override
	public void afterCompose() {
		Components.wireVariables(this, this);
		Components.addForwards(this, this);
		
		onGetUser();//页面初始化的时候条用此方法
	}

	public void onCreate() {
		binder = (AnnotateDataBinder) this.getVariable("binder", true);

	}

	public List<User> onGetUserList() {
		return userList;
	}

	public void onGetUser() {
  
	       final UserService service  = (UserService) SpringUtil.getBean("userService");
	      final Paging paging= (Paging) this.getFellow("pagingUser");//找到id命名为pagingUser的paging组件
	      int totalSize=service.countUser();  //查询出所有数据的记录数;
	      paging.setTotalSize(totalSize);   //设置paging组件的总记录数;
	      final int pageSize=paging.getPageSize();  //这个我不详细描述了自己想....
               /**
               *下面就是为paging组件添加事件监听器 "onPaging"事件
               *
               */
	      paging.addEventListener("onPaging", new EventListener() {
					public void onEvent(Event event) throws Exception {
						    PagingEvent pagingEvt=(PagingEvent) event;//转化成PaingEvent事件

						    Page<User> pu=new Page<User>();//这个是我自己写的工具类
 										   //其实就是将传入参数pageSize,pageNo的封装
									   	   
						    pu.setAutoCount(true);
						    pu.setPageNo( pagingEvt.getActivePage());
						    pu.setPageSize(pageSize);
						      Page<User>  pageUser=    service.pagedUser(pu,user);//后台biz层的数据访问
						      userList=  pageUser.getResult();//result返回一个集合对象全部数据
						       binder.loadComponent(userLbx);//这个不加阐述了
					}
				});
	         
	}

}
2
3
分享到:
评论
1 楼 gbfd2012 2010-08-01  
<listbox id="xx" mold="paging" pageSize-"5">

相关推荐

    ZK MVC与MVVM模式联合实现动态分页

    通过以上步骤,我们可以利用ZK的`paging`组件,结合MVC和MVVM模式,实现高效、响应式的动态分页功能。在实际项目中,还需要考虑性能优化,例如使用懒加载策略,只在需要时加载数据,以减少初次加载和网络传输的数据...

    jQuery-Paging动态分页数据获取插件

    总的来说,jQuery-Paging插件为开发者提供了一种便捷的方式来实现动态分页和数据加载,它的易用性和丰富的定制选项使得在各种Web应用中都能灵活运用。结合HTML、CSS和JavaScript,你可以创建出既美观又高效的分页...

    jQuery-Paging动态分页数据获取插件.zip

    jQuery-Paging插件就是一个针对这种情况设计的动态分页工具,它允许开发者轻松实现数据的分页显示,从而提高页面加载速度,降低服务器负担。 一、jQuery-Paging插件简介 jQuery-Paging是一款基于JavaScript库jQuery...

    试着用zk结合hibernaet实现分页查询

    本话题将探讨如何利用Zookeeper(zk)与Hibernate结合来实现分页查询。Zookeeper是一个分布式协调服务,而Hibernate则是一个流行的Java对象关系映射(ORM)框架,它们的结合可以为分布式环境下的数据处理提供强大...

    使用jquery实现表格动态分页

    本教程将详细讲解如何使用jQuery库来实现表格的动态分页,同时结合Java后端进行数据的动态查询和分页处理。 首先,让我们了解动态分页的基本原理。动态分页是指在用户滚动或点击分页按钮时,仅加载当前显示的数据,...

    一个简单Paging自定义分页范例

    一个简单的Paging自定义分页范例 一个简单的Paging自定义分页范例 一个简单的Paging自定义分页范例 一个简单的Paging自定义分页范例 一个简单的Paging自定义分页范例 一个简单的Paging自定义分页范例

    Vuepaging使用Vue组件实现的分页

    Vue-paging 是一个基于Vue.js的分页组件,它使得在Web应用中实现分页功能变得简单易行。这个组件提供了高度自定义和可配置性,适用于各种类型的项目。 在Vue.js中,组件是构建应用程序的基本单元,它们可以复用、...

    Android Paging Library 基于RecyclerView的分页加载框架

    Android Paging Library 是Google推出的一个强大的分页加载框架,它与RecyclerView紧密集成,旨在优化移动设备上的数据加载体验,减少内存占用并提升应用性能。Paging Library使得开发者能够以流式方式加载数据,只...

    使用extremecomponent组件实现分页、导出xls

    Extremecomponents提供了分页组件,如PagingToolbar,它可以方便地与GridPanel结合使用,实现数据的分页展示。配置分页组件主要涉及设置每页显示的数据量(pageSize)以及连接后台服务获取数据的URL(url)。 接着...

    jQuery 插件paging动态分页获取数据特效源码.zip

    jQuery插件Paging则是专门针对动态分页进行设计的,帮助开发者实现高效、美观的分页功能。本文将详细介绍jQuery插件Paging动态分页获取数据的特效源码及其相关知识点。 1. jQuery基础知识 - DOM操作:jQuery提供了...

    reactnativepage一个简单的reactnative分页组件

    React Native Page 是一款专为React Native平台设计的分页组件,它可以帮助开发者轻松地在原生移动应用中实现页面滑动切换的效果。React Native是一种由Facebook开发的开源框架,允许开发者使用JavaScript和React来...

    uniapp基于z-paging实现页面下拉刷新、上拉加载,分页加载案例

    在本文中,我们将深入探讨如何使用uniapp与z-paging插件来实现页面的下拉刷新、上拉加载以及分页加载功能。这些是移动应用和Web应用中常见的交互模式,能够提供更好的用户体验,使用户可以轻松地查看和加载更多数据...

    分页前端组件.zip

    在前端开发中,分页是常见的数据展示方式,特别是在处理大量数据时,为了提高用户体验,分页组件必不可少。本资源“分页前端组件.zip”提供了一个实现简单分页功能的前端解决方案,包括了CSS样式、JavaScript逻辑...

    用recyclerview实现分页滑动,横向纵向分页

    Paging Library与Room数据库(如果使用)结合使用,可以实现高效的本地数据分页。 5. **用户体验**: 分页加载时,考虑用户体验很重要。添加加载指示器(如进度条或动画)让用户知道数据正在加载。同时,处理网络...

    paging.js分页插件.zip

    paging.js分页插件 &lt;script src="js/jquery.min.js"&gt;&lt;/script&gt; &lt;script type="text/javascript" src="js/paging.js"&gt; &lt;!--分页--&gt; &lt;div id="page" class="page_div"&gt;&lt;/div&gt;

    GridView动态分页

    在"GridView动态分页"的例子中,我们将探讨如何通过编程方式实现分页,而不是在设计时预定义分页。以下是关键知识点: 1. **GridView控件**:GridView是ASP.NET Web Forms中的数据绑定控件,可以用来显示来自各种...

    Android-一个快速实现RecyclerView分页加载的轻量级库

    例如,`Paging库`是Google官方提供的用于Android的分页库,它可以与Room数据库和网络API无缝集成,实现高效、自动化的分页加载。 四、使用轻量级库的步骤 1. 添加依赖:首先,需要在项目的build.gradle文件中添加...

    jsf 动态分页 带jar包 解压直接导入eclipse即可,方便学习~

    这些库通常包含一组预定义的组件,例如`&lt;p:paginator&gt;`,可以方便地与数据表格结合使用,实现动态分页效果。 **2. 分页原理** 动态分页的基本原理是根据用户请求的页码,从服务器端获取对应的数据子集,然后在...

    extjs 树型分页组件

    还可以通过自定义事件处理程序来实现更复杂的交互逻辑,如监听树节点的展开和折叠事件,动态调整分页参数。 6. 性能优化 为了进一步提高性能,可以在服务器端实现数据缓存,避免频繁请求相同的数据。同时,EXTJS还...

Global site tag (gtag.js) - Google Analytics