`
menjoy
  • 浏览: 422828 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Flex表格分页封装例子

阅读更多

网上找了篇Flex分页封装的例子,可以参考使用,并可参照实现其他自己需要的封装

 

控件代码:

 

<?xml version="1.0"  encoding= "utf-8" ?>  
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"  width= "400"  height= "300"  xmlns:local= "*" >  
    <mx:Script>  
       <![CDATA[  
           import  mx.collections.ArrayCollection;  

           [Bindable]public  	var pageSize: int = 10 ; //每页显示行数    
           [Bindable]private  	var totalPage: int = 0 ; //总页数     
           [Bindable]private  	var currentPage: int = 0 ; //当前页                    
           [Bindable]public  	var acAllData:ArrayCollection; //所有数据     
           [Bindable]private  	var acPageData:ArrayCollection= new  ArrayCollection(); //当前页数据     
           [Bindable]public  	var arrColumns:Array; //DataGrid列,在调用时需要为这个数组设置数据   
  
           //初始化    
           public  function init(value:ArrayCollection): void{    
              acAllData=value;    
              if (acAllData.length!= 0  && acAllData!= null ){    
                  totalPage=Math.ceil(acAllData.length/pageSize);  
                  loadData(0 );  
              }else {  
                  currentPage=0 ;  
                  totalPage=0 ;  
              }  
           }  
  
           //加载数据   
           private  function loadData(pageNum: int ): void{    
              if (pageNum>= 0  && pageNum<totalPage){    
                  acPageData.removeAll();   
                  currentPage=pageNum;//重新为当前页的变量赋值    
                  var startIndex:int =pageNum*pageSize; //计算起始索引    
                  for (var i: int = 0 ;i<pageSize && startIndex<acAllData.length;i++){
                     acPageData.addItem(acAllData[startIndex]);                     
                     startIndex++;   
                  }    
              }    
           }  
       ]]>  
    </mx:Script>  
    <mx:VBox x="0"  y= "0"  width= "100%"  height= "100%"  verticalGap= "0"  horizontalAlign= "center"  backgroundColor= "white" >    
       <mx:DataGrid id="customgrid"  width= "100%"  dataProvider= "{acPageData}"  columns= "{arrColumns}"  rowCount= "{pageSize}" />  
       <mx:HBox cornerRadius="3"  borderStyle= "solid"  horizontalAlign= "center"  verticalAlign= "middle" >   
           <mx:Text text="{'  第'+(totalPage>0?(currentPage+1):0)+'页/共'+totalPage+'页'+'  共'+(acAllData!=null?acAllData.length:0)+'条记录'}"  fontSize= "12" />   
           <mx:LinkButton id="lbtnFirst"  label= "首页"  click= "loadData(0)"  enabled= "{lbtnPrevious.enabled}"  fontSize= "12" />  
           <mx:LinkButton id="lbtnPrevious"  label= "上一页"  click= "loadData(currentPage-1)"  enabled= "{currentPage!=0?true:false}"  fontSize= "12" />  
           <mx:LinkButton id="lbtnNext"  label= "下一页"  click= "loadData(currentPage+1)"  enabled= "{totalPage>(currentPage+1)?true:false}"  fontSize= "12" />  
           <mx:LinkButton id="lbtnLast"  label= "尾页"  click= "loadData(totalPage-1)"  enabled= "{lbtnNext.enabled}"  fontSize= "12" />  
           <mx:NumericStepper id="nsPageNum"  stepSize= "1"  minimum= "1"  maximum= "{totalPage}"  enabled= "{lbtnJump.enabled}" />  
           <mx:LinkButton id="lbtnJump"  label= "跳转"  click= "loadData(nsPageNum.value-1)"  enabled= "{totalPage>1?true:false}"  fontSize= "12" />  
       </mx:HBox>  
   </mx:VBox>  
  
</mx:Canvas>  
  

 

测试代码:

 

<?xml version="1.0"  encoding= "utf-8" ?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"  layout= "absolute"  xmlns:local= "*"   
   creationComplete="creationComplete()" >  
     <mx:Script>  
        <![CDATA[    
           import  mx.collections.ArrayCollection; 
           import mx.controls.Alert;             
           [Bindable]  
           private  var ac:ArrayCollection;  
 
           private  function creationComplete(): void {  
               	loadAcData();
           }              

           private  function loadAcData(): void {    
               ac=new  ArrayCollection();   
               //测试数据     
               for (var i: int = 0 ;i< 35 ;i++){  
                  var obj:Object=new  Object();  
                  obj.photo_id=i.toString();  
                  obj.photo_name="photo" +i;  
                  ac.addItem(obj);    
               }  
               dg.init(ac);   
           }  
        ]]>  
     </mx:Script>  
  
     <!--设置pageSize为8 ,表示每页显示 8 条记录,不设置默认显示 10 条记录-->  
    <local:mygrid id="dg"  width= "100%"  height= "100%"  pageSize= "5" >  
       <local:arrColumns><!--为这个标签设置DataGridColumn,指示在DataGrid上显示的列-->  
           <mx:DataGridColumn headerText="id"  dataField= "photo_id" />   
           <mx:DataGridColumn headerText="name"  dataField= "photo_name" />  
       </local:arrColumns>
    </local:mygrid> 
    
</mx:Application>  
 
分享到:
评论
1 楼 qiyangyang2020 2011-10-13  
很好很不错。原来还可以这样封装啊。呵呵。

相关推荐

    flex 分页学习例子

    在本学习例子中,"flex 分页学习例子"着重于如何在Flex应用中实现分页功能,这对于处理大量数据的展示和用户体验优化至关重要。 首先,我们要理解Flex中的分页概念。分页是将大量数据分割成多个部分,每次只显示一...

    flex分页 很好很强大

    Flex分页是一种在Web开发中实现页面数据分块显示的技术,尤其在大数据量展示时,它能有效地提高用户体验,减少页面加载时间,并提供流畅的滚动交互。标题“flex分页 很好很强大”和描述“简单引用 很方便”暗示了...

    flex datagrid 前台 分页

    实现Flex DataGrid的前台分页,首先需要确保数据源能够一次性加载所有数据。这可能意味着你需要有足够的内存来处理这些数据,否则可能会导致性能问题。在获取数据后,你可以使用DataGrid的`dataProvider`属性来绑定...

    flex通用分页控件

    Flex通用分页控件是基于Adobe Flex框架开发的一种组件,用于在Web应用程序中实现数据的分页显示。Flex是一个开放源代码的、基于XML的编程语言,主要用于构建富互联网应用程序(Rich Internet Applications,RIA)。...

    FLEX DATA GRID 分页

    下面将详细解释FLEX Data Grid的分页实现及其相关知识点。 1. **什么是Flex Data Grid**: Flex Data Grid是Adobe Flex框架中的一个组件,全称为MX:DataGrid或Spark:DataGrid。它用于展示和操作表格形式的数据,...

    对flex栅格系统封装

    描述中的“对flex 栅格系统封装”进一步强调了我们是围绕Flexbox进行抽象和封装,创建一套易于理解和使用的API,使得开发者在处理页面布局时能够更专注于内容,而不是底层的CSS实现细节。 标签“JavaScript开发-CSS...

    Flex分页显示实例

    2. **使用Grid或DataGrid组件**:Flex中的Grid或DataGrid组件是显示表格数据的理想选择。通过设置它们的数据Provider属性,可以将数据模型与组件关联,实现数据的动态展示。 3. **分页组件**:为了实现分页功能,...

    Flex分页技术

    在Flex开发中,数据展示通常会涉及到大量的数据处理,如分页、排序、过滤和关键字搜索等。在Flex中,我们可以使用DataGrid组件来实现这些功能,提高用户体验并优化性能。 1. **Flex DataGrid 分页技术**: Flex ...

    flex 分页

    "Flex分页"指的是使用Adobe Flex框架实现数据的分页显示。Flex是一个开源的、基于ActionScript的开发框架,用于构建富互联网应用(RIA)。在这个场景下,我们将深入探讨Flex中的分页实现以及相关知识点。 首先,...

    flex datagrid分页 动态绑定数据源

    在Flex开发中,Datagrid是不可或缺的一个组件,它主要用于展示大量结构化数据,提供了一种交互式的表格形式来显示和操作数据。本篇文章将深入探讨“flex datagrid分页动态绑定数据源”的相关知识点。 首先,让我们...

    Flex DataGrid 分页

    Flex DataGrid是一个强大的表格组件,它允许展示和操作数据集中的列式数据。在处理大量数据时,通过添加分页功能,可以将数据分割成若干页,每次只加载一页的数据,这样不仅提高了加载速度,也使得用户更容易管理和...

    Flex 分页组件,flex自定义组件

    Flex分页组件是一种在Flex应用程序中用于展示大量数据并分批加载的重要工具。它通过将大量数据分成小块,每次只加载一部分,提高了用户界面的响应速度和用户体验。本组件适用于那些需要显示大量数据,如表格、列表...

    flex的分页技术

    ### Flex的分页技术 #### 一、引言 随着Web应用的发展,用户对数据展示的需求越来越高,特别是在处理大量数据时,如何优雅地实现数据的分页显示成为了开发者必须掌握的一项技能。Flex作为一款强大的RIA(Rich ...

    flex分页代码

    - `DataGrid`:这是一个强大的表格组件,支持数据分页。通过设置`dataProvider`属性和`pageSize`属性,可以实现数据分页。`DataGrid`还提供了`pageChange`事件,当用户切换页面时,我们可以监听这个事件来更新数据...

    flex分页控件的使用

    在Flex开发中,分页控件是用于展示大量数据时必不可少的一个组件,它允许用户以较小的数据块(每页)浏览整个数据集,从而提高用户体验并减轻服务器负载。本篇文章将详细讲解如何在Flex中创建和使用分页控件。 首先...

    Flex +BlazeDS+java后台分页的实现

    Flex + BlazeDS + Java 后台分页的实现是一个关键的技术环节,特别是在开发大型Web应用程序时,为了提高用户体验和系统性能,数据通常需要通过分页的方式进行加载。本方案主要探讨了如何在Flex前端和BlazeDS中间件与...

    flex 分页控件,我自己写的flex分页控件

    这是我自己写的一个flex组件,使用简单,在使用的时候,只需要在页面载入里,新建组件对象就OK,另外还有一个方法监听控件返回的的页数,可以实现分面。flex会生成linkButton,并且可以按需要控件显示的数量。如有不...

    flex表格复制

    这个主题“flex表格复制”涉及到的是如何在Flex中实现表格数据的复制功能,这在许多业务应用中是非常常见的需求。Flex中的表格通常由mx:DataGrid组件表示,它允许用户展示和操作数据集。 在博文《flex表格复制》中...

    Flex4 分页组件

    在Flex4中,分页组件是实现大量数据展示时非常重要的一个功能,它允许用户以较小的数据块浏览内容,提高应用性能和用户体验。 分页组件在Flex4中的实现主要依赖于`mx.controls.Pagination`类。这个类提供了分页控制...

    flex 分页控件

    分页控件就是这样一个例子,它可能需要显示当前页数、总页数、上一页、下一页等功能。 1. **创建自定义组件**:在Flex中,你可以通过继承MX或者Spark的基类来创建自定义组件。例如,可以继承UIComponent或...

Global site tag (gtag.js) - Google Analytics