ZK Paging組件實現動態分頁,描述很通俗易懂
- 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);//這個不加闡述了
- }
- });
- }
- }
posted on 2012-06-16 22:20 gdufo 閱讀(1587) 評論(0) 編輯 收藏 所屬分類: zkoss