网上找了篇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>
分享到:
相关推荐
在本学习例子中,"flex 分页学习例子"着重于如何在Flex应用中实现分页功能,这对于处理大量数据的展示和用户体验优化至关重要。 首先,我们要理解Flex中的分页概念。分页是将大量数据分割成多个部分,每次只显示一...
Flex分页是一种在Web开发中实现页面数据分块显示的技术,尤其在大数据量展示时,它能有效地提高用户体验,减少页面加载时间,并提供流畅的滚动交互。标题“flex分页 很好很强大”和描述“简单引用 很方便”暗示了...
实现Flex DataGrid的前台分页,首先需要确保数据源能够一次性加载所有数据。这可能意味着你需要有足够的内存来处理这些数据,否则可能会导致性能问题。在获取数据后,你可以使用DataGrid的`dataProvider`属性来绑定...
Flex通用分页控件是基于Adobe Flex框架开发的一种组件,用于在Web应用程序中实现数据的分页显示。Flex是一个开放源代码的、基于XML的编程语言,主要用于构建富互联网应用程序(Rich Internet Applications,RIA)。...
下面将详细解释FLEX Data Grid的分页实现及其相关知识点。 1. **什么是Flex Data Grid**: Flex Data Grid是Adobe Flex框架中的一个组件,全称为MX:DataGrid或Spark:DataGrid。它用于展示和操作表格形式的数据,...
描述中的“对flex 栅格系统封装”进一步强调了我们是围绕Flexbox进行抽象和封装,创建一套易于理解和使用的API,使得开发者在处理页面布局时能够更专注于内容,而不是底层的CSS实现细节。 标签“JavaScript开发-CSS...
2. **使用Grid或DataGrid组件**:Flex中的Grid或DataGrid组件是显示表格数据的理想选择。通过设置它们的数据Provider属性,可以将数据模型与组件关联,实现数据的动态展示。 3. **分页组件**:为了实现分页功能,...
在Flex开发中,数据展示通常会涉及到大量的数据处理,如分页、排序、过滤和关键字搜索等。在Flex中,我们可以使用DataGrid组件来实现这些功能,提高用户体验并优化性能。 1. **Flex DataGrid 分页技术**: Flex ...
"Flex分页"指的是使用Adobe Flex框架实现数据的分页显示。Flex是一个开源的、基于ActionScript的开发框架,用于构建富互联网应用(RIA)。在这个场景下,我们将深入探讨Flex中的分页实现以及相关知识点。 首先,...
在Flex开发中,Datagrid是不可或缺的一个组件,它主要用于展示大量结构化数据,提供了一种交互式的表格形式来显示和操作数据。本篇文章将深入探讨“flex datagrid分页动态绑定数据源”的相关知识点。 首先,让我们...
Flex DataGrid是一个强大的表格组件,它允许展示和操作数据集中的列式数据。在处理大量数据时,通过添加分页功能,可以将数据分割成若干页,每次只加载一页的数据,这样不仅提高了加载速度,也使得用户更容易管理和...
Flex分页组件是一种在Flex应用程序中用于展示大量数据并分批加载的重要工具。它通过将大量数据分成小块,每次只加载一部分,提高了用户界面的响应速度和用户体验。本组件适用于那些需要显示大量数据,如表格、列表...
### Flex的分页技术 #### 一、引言 随着Web应用的发展,用户对数据展示的需求越来越高,特别是在处理大量数据时,如何优雅地实现数据的分页显示成为了开发者必须掌握的一项技能。Flex作为一款强大的RIA(Rich ...
- `DataGrid`:这是一个强大的表格组件,支持数据分页。通过设置`dataProvider`属性和`pageSize`属性,可以实现数据分页。`DataGrid`还提供了`pageChange`事件,当用户切换页面时,我们可以监听这个事件来更新数据...
在Flex开发中,分页控件是用于展示大量数据时必不可少的一个组件,它允许用户以较小的数据块(每页)浏览整个数据集,从而提高用户体验并减轻服务器负载。本篇文章将详细讲解如何在Flex中创建和使用分页控件。 首先...
Flex + BlazeDS + Java 后台分页的实现是一个关键的技术环节,特别是在开发大型Web应用程序时,为了提高用户体验和系统性能,数据通常需要通过分页的方式进行加载。本方案主要探讨了如何在Flex前端和BlazeDS中间件与...
这是我自己写的一个flex组件,使用简单,在使用的时候,只需要在页面载入里,新建组件对象就OK,另外还有一个方法监听控件返回的的页数,可以实现分面。flex会生成linkButton,并且可以按需要控件显示的数量。如有不...
这个主题“flex表格复制”涉及到的是如何在Flex中实现表格数据的复制功能,这在许多业务应用中是非常常见的需求。Flex中的表格通常由mx:DataGrid组件表示,它允许用户展示和操作数据集。 在博文《flex表格复制》中...
在Flex4中,分页组件是实现大量数据展示时非常重要的一个功能,它允许用户以较小的数据块浏览内容,提高应用性能和用户体验。 分页组件在Flex4中的实现主要依赖于`mx.controls.Pagination`类。这个类提供了分页控制...
分页控件就是这样一个例子,它可能需要显示当前页数、总页数、上一页、下一页等功能。 1. **创建自定义组件**:在Flex中,你可以通过继承MX或者Spark的基类来创建自定义组件。例如,可以继承UIComponent或...