Flex分页控件
提到分页大家应该都很熟悉了,几乎所有的应用中都会用到。因而完成一个分页在不同的应用中进行复用是必须的,刚写完了一个flex分页的组件,拿来分享一下。如果有什么建议、问题欢迎大家提出。希望可以为flex的开发者们提供一个可靠的分页组件。
package utils.page
{
import flash.events.mouseevent;
import mx.controls.button;
import mx.controls.label;
//分页组件类
//作者:孙镜涛
//日期:2010-01-12
//描述:本类主要负责对分页相关的按钮以及信息显示的标签进行管理;对数据显示内容进行控制
public class pagecomponent
{
//首页按钮
private var firstbutton:button;
//下一页按钮
private var nextbutton:button;
//前一页按钮
private var previousbutton:button;
//最后页按钮
private var lastbutton:button;
//当前页信息显示
private var curpageinfolbl:label;
//所有页信息显示
private var totalpageinfolbl:label;
//当前页改变时数据处理方法
private var handledatafun:function;
//分页数据的处理类
private var page:pageutils;
//first,next,previous,last:第一页,下一页,上一页,最后页的button
//curpageinfolbl,totalpageinfolbl:当前页,所有页信息显示的label
//handledatafun:分页的页码改变后数据的处理函数,该函数符合的签名为:(data:array):void
//exefun:查询数据的sql,该函数的签名为:(sql:string):array
//pagenum:每页显示数据条数
public function pagecomponent(first:button,next:button,previous:button,last:button,curpageinfolbl:label,
totalpageinfolbl:label,handledatafun:function,exefun:function,pagenum:int)
{
//分页按钮初始化
this.firstbutton=first;
this.nextbutton=next;
this.previousbutton=previous;
this.lastbutton=last;
//分页信息显示控件初始化
this.curpageinfolbl=curpageinfolbl;
this.totalpageinfolbl=totalpageinfolbl;
//页面改变后数据处理函数
this.handledatafun=handledatafun;
//分页数据类初始化
this.page=new pageutils(exefun,pagenum);
//为分页按钮增加相应的事件处理函数
this.firstbutton.addeventlistener(mouseevent.click,firstbuttonclicked);
this.nextbutton.addeventlistener(mouseevent.click,nextbuttonclicked);
this.previousbutton.addeventlistener(mouseevent.click,previousbuttonclicked);
this.lastbutton.addeventlistener(mouseevent.click,lastbuttonclicked);
}
//需要分页查询的的sql
public function initsql(sql:string):void
{
this.page.initsqlandinitdataifnecessary(sql);
setbuttonstatus();
setlabelinfo();
this.handledatafun(page.getpagedata());
}
//分页按钮被点击时的处理逻辑为:
//1.设置当前数据的页数
//2.设置分页控件按钮的状态
//3.设置分页控件信息显示label的内容
//4.查询该页数据并执行数据处理函数
//点击第一页时触发的事件
public function firstbuttonclicked(event:mouseevent):void
{
page.setcurrentpage(1);
setbuttonstatus();
setlabelinfo();
this.handledatafun(page.getpagedata());
}
//点击下一页时触发的事件
public function nextbuttonclicked(event:mouseevent):void
{
if(page.getcurrentpage()<page.getpagecount())
&n
上一篇: 樱桃怎么保存,放在纸盒子里保鲜效果好