flex datagrid 做个分页
来源:互联网 发布:网络热点视频门 编辑:程序博客网 时间:2024/05/21 14:51
首先在flex项目中新建一个as类:dgPaging.as
代码如下:
package myComponents
{import mx.collections.ArrayCollection;
import mx.controls.DataGrid;
import mx.controls.Label;
import mx.controls.NumericStepper;
public class dgPaging
{
/**
* 初始化切换部分的一些变量
* 调用setPaper()
*/
public var _pageCount:int = 20;//表示每页记录的条数,默认10条,可以由用户自行定义
public var _curPage:int;//当前的页码
public var _totalPage:int;//一共的页数
public var _totalCount:int;//一共的记录条数
public var pageDateTempArr:ArrayCollection;
/**
* 函数名:initdata
* 功能:实现分页中的初始显示第一页
* 参数: value:ArrayCollection 作为dg全部信息的数组;
* inputpage:NumericStepper NumericStepper 控件;
* pageDetail:Label label空间;
* dg:DataGrid DataGrid控件
* 返回值:空
* 创建者:刘振
* 创建时间:2012-11-23
*
**/
public function initdata(value:ArrayCollection,inputpage:NumericStepper,pageDetail:Label,dg:DataGrid):void
{
pageDateTempArr = new ArrayCollection;//移出当前页面中所有数据记录
if(value.length>0 && null != value)
{
_totalCount = value.length;
_totalPage = (_totalCount + _pageCount - 1) / _pageCount;
setPager(0,pageDateTempArr,value,pageDetail,dg);
inputpage.minimum = 1;
inputpage.maximum = _totalPage;
}
else
{
dg.dataProvider = pageDateTempArr;
_totalCount = 0;
_totalPage = 0;
_curPage = 0;
inputpage.minimum = 0;
inputpage.maximum = 0;
pageDetail.text = "第0页/共0页 共0条纪录";
}
}
/**
* 函数名:setPager
* 功能:实现分页
* 参数: value:int 设定的显示的页码;
* tempArr:ArrayCollection 一页中显示的信息的数据源数组;
* dataArr:ArrayCollection 作为dg全部信息的数组;
* pageDetail:Label label空间;
* dg:DataGrid DataGrid控件
* 返回值:空
* 创建者:刘振
* 创建时间:2012-11-23
*
**/
public function setPager(value:int,tempArr:ArrayCollection,dataArr:ArrayCollection,pageDetail:Label,dg:DataGrid):void
{
if(value < 0 || value >= _totalPage)
return;
_curPage = value;
var curNum:int = value*_pageCount;//计算出要跳转到的页面种的第一条记录在所有的记录种是第几条记录
tempArr.removeAll();//移出变量中的数据,以便插入新数据,页面中显示的是这个变量中的数据
for(var i:int = 0;curNum < dataArr.length && i < _pageCount;i++,curNum++)
//循环的次数既要小于所有的记录数,也要小于每个页面能显示的记录数;并且curNum变量中的值也要增加
{
tempArr.addItem(dataArr.getItemAt(curNum));//依次抽取记录
}
dg.dataProvider = tempArr;
var temp:int = _curPage+1;//页码中第一张页面是0,也就是说实际显示的页码是+1后的值
pageDetail.text = "第"+temp+"页/共"+_totalPage+"页 共条"+_totalCount+"记录";
}
}
}
在module中调用:
import myComponents.dgPaging;//引入分页类
private var divdPage:dgPaging = new dgPaging;
然后再给dg赋值的函数中调用initdata方法
divdPage.initdata(inspectArr,inputpage,pageDetail,log_dg);
//inspectArr为dg的全部信息数组Arraycollection,
//inputpage 为textinput控件的id,
//pageDetail为显示的页码数的label控件
//log_dg为dg控件
在控件中的调用更改页码:
<mx:HBox includeIn="baobiaoState" width="100%" horizontalAlign="left" verticalAlign="middle" height="30" x="0" y="{log_dg.height}" >
<mx:Spacer width="287" height="1"></mx:Spacer>
<mx:Label text="第0页/共0页" id="pageDetail"/>
<mx:LinkButton label="首页" click="divdPage.setPager(0,divdPage.pageDateTempArr,inspectArr,pageDetail,log_dg)"/>
<mx:LinkButton label="上一页" click="divdPage.setPager(divdPage._curPage-1,divdPage.pageDateTempArr,inspectArr,pageDetail,log_dg)"/>
<mx:LinkButton label="下一页" click="divdPage.setPager(divdPage._curPage+1,divdPage.pageDateTempArr,inspectArr,pageDetail,log_dg)"/>
<mx:LinkButton label="末页" click="divdPage.setPager(divdPage._totalPage-1,divdPage.pageDateTempArr,inspectArr,pageDetail,log_dg)"/>
<mx:NumericStepper id="inputpage" stepSize="1" minimum="0" maximum="0" cornerRadius="0" />
<mx:LinkButton label="跳转" click="divdPage.setPager(inputpage.value-1,divdPage.pageDateTempArr,inspectArr,pageDetail,log_dg)"/>
</mx:HBox>
- flex datagrid 做个分页
- FLEX DataGrid分页
- Flex DataGrid分页
- Flex 2 DataGrid 分页
- flex datagrid 分页组件
- 使用DataGrid- Flex分页
- Flex DataGrid分页
- FLEX DataGrid分页 【收藏】
- flex datagrid分页
- Flex 2 DataGrid 分页代码
- flex DataGrid分页(demo)
- Flex DataGrid通用分页组件
- Flex组件DataGrid分页技术
- Flex中DataGrid分页(客户端、服务端)
- Flex中的DataGrid分页和数据处理
- flex 使用datagrid的分页技术
- FLEX2中DataGrid控件的分页 (Flex 自定义DataGrid控件)
- 自己做的flex分页控件
- .net下性能优化
- LeetCode Next Permutation
- 网页中视频在线播放脚本
- 精妙SQL语句收集
- 我们今天该做什么——我们今天该做什么
- flex datagrid 做个分页
- linux 安装maven
- 〖数学算法〗开平方的七种算法
- UVaOJ 755 - 487--3279
- 《嵌入式实时操作系统uC/OS-II》_第4章_任务管理
- Splitting of MPI communicators
- NOIP2012复习提纲
- ERROR L104: MULTIPLE PUBLIC DEFINITIONS解决方法
- 算法导论6.5-8堆排序-K路合并