Flex分页控件

2018-09-06 12:28

阅读:416

  提到分页大家应该都很熟悉了,几乎所有的应用中都会用到。因而完成一个分页组件在不同的应用中进行复用是必须的,刚写完了一个flex分页的组件,拿来分享一下。如果有什么建议、问题欢迎大家提出。希望可以为flex的开发者们提供一个可靠的分页组件。

  package utils.page

  {

   import Flash.events.MouseEvent;

   //分页组件类

   //作者:孙镜涛

   //日期: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

   {

   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


评论


亲,登录后才可以留言!