在Flex Datagrid中添加分页的插件?
发布时间:2020-12-15 01:47:33 所属栏目:百科 来源:网络整理
导读:是否有可以添加到Flex项目的库或插件,以便为Flex Datagrid添加分页? 解决方法 this paginated datagrid的源代码可以在 here找到. ?xml version="1.0" encoding="utf-8"?mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creati
是否有可以添加到Flex项目的库或插件,以便为Flex Datagrid添加分页?
解决方法
this paginated datagrid的源代码可以在
here找到.
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="InitApp()" xmlns:MyComp="*"> <mx:Script> <![CDATA[ import mx.collections.ArrayCollection; import mx.events.ItemClickEvent; import mx.controls.Button; import mx.controls.Alert; [Bindable] public var myData:ArrayCollection = new ArrayCollection(); public var orgData:ArrayCollection = new ArrayCollection(); [Bindable] public var nav:ArrayCollection = new ArrayCollection(); public var pageSize:uint = 10; public var navSize:uint = 10; private var index:uint = 0; private var navPage:uint = 1; private function InitApp():void { for( var x:uint = 1; x <= 500; x++ ) { var obj:Object = new Object(); obj.Id = x.toString(); obj.Name = "Column " + x.toString(); obj.Street = "5555 Street"; obj.Title = "CEO"; obj.City = "El Paso"; orgData.addItem(obj); } refreshDataProvider(index); createNavBar(Math.ceil(orgData.length/pageSize)); } private function createNavBar(pages:uint = 1,set:uint = 0):void { nav.removeAll(); if( pages > 1 ) { if( set != 0 ) { nav.addItem({label:"<<",data:0}); if( (set - navSize ) >= 0 ) { nav.addItem({label:"<",data:set - navSize}); } else { nav.addItem({label:"<",data:0}); } } for( var x:uint = 0; x < navSize; x++) { var pg:uint = x + set; nav.addItem({label: pg + 1,data: pg}); } if( pg < pages - 1 ) { nav.addItem({label:">",data:pg + 1}); nav.addItem({label:">>",data:pages - pageSize}); } } } private function navigatePage(event:ItemClickEvent):void { refreshDataProvider(event.item.data); var lb:String = event.item.label.toString(); if( lb.indexOf("<") > -1 || lb.indexOf(">") > -1 ) { createNavBar(Math.ceil(orgData.length/pageSize),event.item.data); if( event.item.data == 0 ) { pageNav.selectedIndex = 0; } else { pageNav.selectedIndex = 2; } } } private function refreshDataProvider(start:uint):void { myData = new ArrayCollection( orgData.source.slice((start * pageSize),(start * pageSize) + pageSize) ); } ]]> </mx:Script> <mx:VBox verticalGap="0"> <mx:DataGrid id="dg" dataProvider="{myData}"></mx:DataGrid> <mx:ToggleButtonBar id="pageNav" itemClick="navigatePage(event)" dataProvider="{nav}" width="{dg.width}"></mx:ToggleButtonBar> </mx:VBox> </mx:Application> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |