分頁顯示數據是網站瀏覽中必備的元素之一,在FLEX中通過數據分頁的方法來獲取當前顯示數據,即能降低網路傳的負擔同時也能減少Flex的處理工作。
分頁控制項需要的功能有:首頁,上一頁,下一頁,未頁和頁數跳轉等。
基本介紹
- 中文名:flex分頁控制項的使用
- 功能:首頁,上一頁,下一頁
- 必備:網站瀏覽
- 方法:在FLEX中通過數據分頁
參數對象,代碼,
參數對象
相關事件參數對象:
package { import flash.events.Event; import mx.events.IndexChangedEvent; public class PageChangeEvent extends flash.events.Event { public function PageChangeEvent(pageindex:int,pagesize:int) { super("PageChange"); PageIndex= pageindex; PageSize =pagesize; } public var PageIndex:int=0; public var PageSize:int=0; public function Filter(list:Array):Array { var newlist:Array = new Array(); var start:int = PageSize*PageIndex; var end:int = start+PageSize; for(var i:int = start;i<end;i++) { if(i< list.length) { newlist.push(list[i]); } else break; } return newlist; } } }
代碼
分頁控制項的代碼:
[Event(name="PageChange", type="PageChangeEvent",bubbles="true",cancelable="true")] @Embed('LE.gif') @Embed('L.gif') @Embed('R.gif') @Embed('RE.gif') 0) { SetState(); } } private function SetState():void { if(mRecordCount%mPageSize > 0) { mPageCount = mRecordCount/mPageSize+1; } else { mPageCount = mRecordCount/mPageSize; } var pages:Array = new Array(); for(var i:int =1;i1) { c_select.enabled=true; c_l.enabled=true; c_le.enabled=true; c_r.enabled=true; c_re.enabled=true; if(mPageIndex==0) { c_l.enabled=false; c_le.enabled=false; } if(mPageIndex == mPageCount-1) { c_r.enabled=false; c_re.enabled=false; } } else { c_select.enabled=false; c_l.enabled=false; c_le.enabled=false; c_r.enabled=false; c_re.enabled=false; } pageinfo.text="Records:" + mRecordCount+"/" + mPageCount+"pages"; } //獲取記錄總數 public function get RecordCount():int { return mRecordCount; } //打開分頁控制項 public function Open():void{ mPageIndex =0; OnPageChange(); } //刷新當前頁面 public function refresh():void { OnPageChange(); } private function OnPageChange():void { var e:PageChangeEvent = new PageChangeEvent(mPageIndex, mPageSize); dispatchEvent(e); } ]]>
用例頁面代碼:
<![CDATA[ import mx.controls.Alert; import flash.events.Event; import Units.*; private var datas:Array = new Array(); function oninit():void { for(var i:int=0;i