`
Etwo
  • 浏览: 103527 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

AS3分页 详尽 封装

阅读更多

近段时间在做一个分页,嫌着在多个地方都用到了分页,就干脆封装好一个,现共享出来,以供大家批评指责

其使用方法见最后面

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);
}

0
6
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics