欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Flex分页控件

程序员文章站 2022-06-10 16:31:12
提到分页大家应该都很熟悉了,几乎所有的应用中都会用到。因而完成一个分页在不同的应用中进行复用是必须的,刚写完了一个flex分页的组件,拿来分享一下。如果有什么建议、问题欢迎大家提出。希望可以为fle...

提到分页大家应该都很熟悉了,几乎所有的应用中都会用到。因而完成一个分页在不同的应用中进行复用是必须的,刚写完了一个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