<?xml version="1.0" encoding="utf-8"?>
<mx:ControlBar xmlns:mx="http://www.adobe.com/2006/mxml" width="100%"
paddingTop="0" height="24">
<mx:Script>
<![CDATA[
import mx.events.ValidationResultEvent;
import mx.events.ItemClickEvent;
import mx.rpc.AsyncToken;
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
import flash.events.Event;
import flash.events.KeyboardEvent;
import mx.rpc.http.mxml.HTTPService;
import mx.validators.NumberValidator;
[Bindable]
private var _pageSize: Number = 20;
// 当前页
[Bindable]
private var _curPage: Number = 1;
//总记录数
[Bindable]
private var _recordCount: String;
// 页面总数
private var pageCount: Number = -1;
private var numValid:NumberValidator = new NumberValidator();
// 请求数据的服务,由调用程序设置
private var _service: HTTPService;
private var _params: URLVariables;
public var resultData: Object;
public function set service(service: HTTPService): void
{
this._service = service;
this._service.addEventListener(ResultEvent.RESULT, onServiceResult);
init();
}
public function get service(): HTTPService
{
return this._service;
}
public function set params(params: URLVariables): void
{
this._params = params;
this._params.pageSize = _pageSize;
init();
}
public function get params(): URLVariables
{
return this._params;
}
private function init(): void
{
_curPage = 1;
pageCount = -1;
pageNavigator.enabled = false;
}
public function set pageSize(pageSize: Number): void
{
this._pageSize = pageSize;
if (params != null)
{
this._params.pageSize = _pageSize;
}
}
public function get pageSize(): Number
{
return _pageSize;
}
private function onServiceResult(e: ResultEvent): void
{
recordCount.text = "共"+(e.result.nodes.recordNum)+"条";
pageCount = Math.ceil( e.result.nodes.recordNum / _pageSize);
totalLabel.text = "页" +"/共" + pageCount + "页";
pageNavigator.enabled = true;
var event: NavigateResultEvent = new NavigateResultEvent(NavigateResultEvent.RESULT);
event.resultData = XML(e.message.body).children();;
this.dispatchEvent(event);
}
private function gotoBtnClick(event:Event): void
{
_curPage = new Number(curPageText.text);
if (_curPage > pageCount)
_curPage = pageCount;
doQuery(_curPage);
}
public function doQuery(pageNo: Number = 1): void
{
params.curPage = pageNo;
service.send(params);
pageNavigator.enabled = false;
}
private function turnPage(e: ItemClickEvent): void
{
switch (e.index)
{
case 0:
_curPage = 1;
doQuery(_curPage);
break;
case 1:
if (_curPage > 1)
_curPage--;
doQuery(_curPage);
break;
case 2:
if (_curPage < pageCount)
_curPage++;
doQuery(_curPage);
break;
case 3:
doQuery(pageCount);
_curPage = pageCount;
break;
default:
break;
}
}
private function createValid():void
{
numValid.source = curPageText;
numValid.property = "text";
numValid.addEventListener(ValidationResultEvent.INVALID,handValid);
numValid.addEventListener(ValidationResultEvent.VALID,handValid);
}
private function handValid(event:ValidationResultEvent):void
{
if(event.type == ValidationResultEvent.VALID)
{
turnBn.enabled = true;
}
if(event.type == ValidationResultEvent.INVALID)
{
turnBn.enabled = false;
curPageText.errorString = "请输入数字";
}
}
]]>
</mx:Script>
<mx:HBox width="60%" cornerRadius="12" borderStyle="solid" horizontalAlign="center" verticalAlign="middle">
<mx:Label text="第"/>
<mx:TextInput width="32" height="20" text="{_curPage}" id="curPageText" creationComplete="createValid()"/>
<mx:Label id="totalLabel" text="/0页"/>
<mx:Label id="recordCount" text="{_recordCount}"/>
<mx:Button label="跳转" click="gotoBtnClick(event);" id="turnBn"/>
<mx:Label id="pageSizeText" text="每页{_pageSize}条"/>
<mx:LinkBar id="pageNavigator" enabled="false" width="100%" horizontalAlign="center" itemClick="turnPage(event);">
<mx:dataProvider>
<mx:Object id="firstPage" Tooltip="首页" label="第一页" enabled="false" icon="@Embed(source='page-first.gif')"/>
<mx:Object id="prePage" Tooltip="上一页" label="上一页" icon="@Embed(source='page-prev.gif')"/>
<mx:Object id="nextPage" Tooltip="下一页" label="下一页" icon="@Embed(source='page-next.gif')"/>
<mx:Object id="lastPage" Tooltip="末页" label="最后一页" icon="@Embed(source='page-last.gif')"/>
</mx:dataProvider>
</mx:LinkBar>
</mx:HBox>
</mx:ControlBar>
分享到:
相关推荐
flex分页 很好很强大 简单引用 很方便
FLex 分页,flex编程,将datagrid 实现数据显示
自己写的flex 分页控件,使用简单,有源码和使用实例。
Flex开发 Flex dataGrid分页技术
很通用的Flex 分页组件,经过本人测试,可以应用到项目中,很方便
重写的Flex分页组件,改进了一些BUG,原版的源码丢了,又重写了一个,所以没有版本之分 recordCount//记录总数,程序对该属性赋值生成分页 currentPageIndex//当前页 pageSize//每页记录数 buttonConut//显示的...
Flex分页控件源码,实现最新最炫的web开发分页设计
这是我自己写的一个flex组件,使用简单,在使用的时候,只需要在页面载入里,新建组件对象就OK,另外还有一个方法监听控件返回的的页数,可以实现分面。flex会生成linkButton,并且可以按需要控件显示的数量。如有不...
FLEX 分页控件 可以跳转 上一页 下一页 首页 尾页
flex 分页 whaosoft www.143zh.com
NULL 博文链接:https://kisscjy.iteye.com/blog/569602
flex分页工具条组件.使用打包好的库包,加载后可以直接使用。也有源代码。
FLEX4 分页工程,抽取为工具类,分页显示记录,并可以从界面上设置每页显示多少条,默认每页显示5条,可以在每页/条的文本框中输入想要显示的条数,比如10条。然后翻页,每页即可显示10条进行翻页了。
方便新手,分页用的非常频繁,快速学习flex的分页。
NULL 博文链接:https://jadeluo.iteye.com/blog/1129410
资源是不错滴,可以认真的看看哦,大家互相学习一下,有更好的资源请上传……
flex分页组建 经过本人测试在3.0 4.0 均可内府图片
flex 分页组件,自己实现的分页组件,帮助您在工作中减少时间和精力。
在进行Flex开发时大家可能需要用到分页,怕麻烦不想写的话这里有现成的组件供大家使用