近段时间在做一个分页,嫌着在多个地方都用到了分页,就干脆封装好一个,现共享出来,以供大家批评指责
其使用方法见最后面
package code.util { /** * AS3分页 * @author Etwo * @version 1.0 */ public class Page { /* * 分页要素: * 1、首页 firstPage * 2、最后一页 lastPage * 3、页总数 pageTotalCount * 4、总共显示的数据记录 dataTotalCount * 5、每页显示的数据记录 dataPerCount * 6、当前页 curPage * 7、当前显示的数据记录 curData * 8、当前实际页数 curRealPage * 9、保存页数的文本框 txtPage */ /** * 1、首页 firstPage * @default */ private var _firstPage:uint; /** * 2、最后一页 lastPage * @default */ private var _lastPage:uint; /** * 3、页总数 pageTotalCount * @default */ private var _pageTotalCount:uint; /** * 4、总共显示的数据记录 dataTotalCount * @default */ private var _dataTotalCount:uint; /** * 5、每页显示的数据记录 dataPerCount * @default */ private var _dataPerCount:uint; /** * 6、当前页 curPage * @default */ private var _curPage:uint; /** * 7、当前显示的数据记录 curData * @default */ private var _curData:uint; /** * 8、当前实际页数 curRealPage * @default */ private var _curRealPage:uint; /** * 9、保存页数的文本框 * @default */ private var _txtPage:String; /** * 上一页 * @return */ public function get previous():uint { return (this.curPage > 1) ? this.curPage - 1 : 1; } /** * 下一页 * @return */ public function get next():uint { return (this.curPage < uint(this.pageTotalCount)) ? this.curPage + 1 : uint(this.pageTotalCount); } /** * 判断是否是首页 * @return */ public function isFirst():Boolean { return (this.curPage == 1) ? true : false; } /** * 判断是否是最后一页 * @return */ public function isLast():Boolean { return (this.curPage == this.pageTotalCount) ? true : false; } /** * 3、页总数 pageTotalCount */ public function get pageTotalCount():uint { this._pageTotalCount = uint(Math.ceil(Number(this.dataTotalCount) / Number(this.dataPerCount))); return _pageTotalCount; } /** * 4、总共显示的数据记录 dataTotalCount */ public function get dataTotalCount():uint { return _dataTotalCount; } /** * @private */ public function set dataTotalCount(value:uint):void { _dataTotalCount = value; } /** * 5、每页显示的数据记录 pagePerCount */ public function get dataPerCount():uint { return _dataPerCount; } /** * @private */ public function set dataPerCount(value:uint):void { this._dataPerCount = value; } /** * 6、当前页 curPage */ public function get curPage():uint { if (_curPage <= 0) { _curPage = 1; } else if (_curPage >= this.pageTotalCount) { _curPage = this.pageTotalCount; } return _curPage; } /** * @private */ public function set curPage(value:uint):void { _curPage = value; } /** * 1、首页 firstPage */ public function get firstPage():uint { this._firstPage = 1; return _firstPage; } /** * 2、最后一页 lastPage */ public function get lastPage():uint { this._lastPage = uint(this.pageTotalCount); return _lastPage; } /** * 7、当前显示的数据记录 curData * @default */ public function get curData():uint { if (isLast() == true) { if (dataTotalCount <= dataPerCount) this._curData = dataTotalCount; else this._curData = dataTotalCount - ((pageTotalCount - 1) * dataPerCount); } else { this._curData = dataPerCount; } return _curData; } /** * 8、当前实际页数 curRealPage * @default */ public function get curRealPage():uint { return _curRealPage; } /** * @private */ public function set curRealPage(value:uint):void { _curRealPage = value; } /** * 9、保存页数的文本框 * @default */ public function get txtPage():String { _txtPage = curPage + _txtPage + pageTotalCount return _txtPage; } /** * @private */ public function set txtPage(value:String):void { _txtPage = value; } } }
使用方法例子:
page.curPage = 1;//设置当前页 page.curRealPage = 1;//设置当前实际的页数,此项必须用到的时候方可使用 page.dataTotalCount = 30;//设置总共显示的数据记录 page.dataPerCount = 10;//每页显示的数据 addPageMenu(page.curData);//传入当前页的数据 page.txtPage = "/";//设置页码分隔符 display.text = page.txtPage;//显示页码 //上一页 private function previous(e:MouseEvent):void { page.curPage = page.previous; addPageMenu(page.curData); } //下一页 private function next(e:MouseEvent):void { page.curPage = page.next; addPageMenu(page.curData); }