Flex表格分页封装例子

网上找了篇Flex分页封装的例子,可以参考使用,并可参照实现其他自己需要的封装

 

控件代码:

 

<?xml version="1.0"  encoding= "utf-8" ?>  
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"  width= "400"  height= "300"  xmlns:local= "*" >  
    <mx:Script>  
       <![CDATA[  
           import  mx.collections.ArrayCollection;  

           [Bindable]public  	var pageSize: int = 10 ; //每页显示行数    
           [Bindable]private  	var totalPage: int = 0 ; //总页数     
           [Bindable]private  	var currentPage: int = 0 ; //当前页                    
           [Bindable]public  	var acAllData:ArrayCollection; //所有数据     
           [Bindable]private  	var acPageData:ArrayCollection= new  ArrayCollection(); //当前页数据     
           [Bindable]public  	var arrColumns:Array; //DataGrid列,在调用时需要为这个数组设置数据   
  
           //初始化    
           public  function init(value:ArrayCollection): void{    
              acAllData=value;    
              if (acAllData.length!= 0  && acAllData!= null ){    
                  totalPage=Math.ceil(acAllData.length/pageSize);  
                  loadData(0 );  
              }else {  
                  currentPage=0 ;  
                  totalPage=0 ;  
              }  
           }  
  
           //加载数据   
           private  function loadData(pageNum: int ): void{    
              if (pageNum>= 0  && pageNum<totalPage){    
                  acPageData.removeAll();   
                  currentPage=pageNum;//重新为当前页的变量赋值    
                  var startIndex:int =pageNum*pageSize; //计算起始索引    
                  for (var i: int = 0 ;i<pageSize && startIndex<acAllData.length;i++){
                     acPageData.addItem(acAllData[startIndex]);                     
                     startIndex++;   
                  }    
              }    
           }  
       ]]>  
    </mx:Script>  
    <mx:VBox x="0"  y= "0"  width= "100%"  height= "100%"  verticalGap= "0"  horizontalAlign= "center"  backgroundColor= "white" >    
       <mx:DataGrid id="customgrid"  width= "100%"  dataProvider= "{acPageData}"  columns= "{arrColumns}"  rowCount= "{pageSize}" />  
       <mx:HBox cornerRadius="3"  borderStyle= "solid"  horizontalAlign= "center"  verticalAlign= "middle" >   
           <mx:Text text="{'  第'+(totalPage>0?(currentPage+1):0)+'页/共'+totalPage+'页'+'  共'+(acAllData!=null?acAllData.length:0)+'条记录'}"  fontSize= "12" />   
           <mx:LinkButton id="lbtnFirst"  label= "首页"  click= "loadData(0)"  enabled= "{lbtnPrevious.enabled}"  fontSize= "12" />  
           <mx:LinkButton id="lbtnPrevious"  label= "上一页"  click= "loadData(currentPage-1)"  enabled= "{currentPage!=0?true:false}"  fontSize= "12" />  
           <mx:LinkButton id="lbtnNext"  label= "下一页"  click= "loadData(currentPage+1)"  enabled= "{totalPage>(currentPage+1)?true:false}"  fontSize= "12" />  
           <mx:LinkButton id="lbtnLast"  label= "尾页"  click= "loadData(totalPage-1)"  enabled= "{lbtnNext.enabled}"  fontSize= "12" />  
           <mx:NumericStepper id="nsPageNum"  stepSize= "1"  minimum= "1"  maximum= "{totalPage}"  enabled= "{lbtnJump.enabled}" />  
           <mx:LinkButton id="lbtnJump"  label= "跳转"  click= "loadData(nsPageNum.value-1)"  enabled= "{totalPage>1?true:false}"  fontSize= "12" />  
       </mx:HBox>  
   </mx:VBox>  
  
</mx:Canvas>  
  

 

测试代码:

 

<?xml version="1.0"  encoding= "utf-8" ?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"  layout= "absolute"  xmlns:local= "*"   
   creationComplete="creationComplete()" >  
     <mx:Script>  
        <![CDATA[    
           import  mx.collections.ArrayCollection; 
           import mx.controls.Alert;             
           [Bindable]  
           private  var ac:ArrayCollection;  
 
           private  function creationComplete(): void {  
               	loadAcData();
           }              

           private  function loadAcData(): void {    
               ac=new  ArrayCollection();   
               //测试数据     
               for (var i: int = 0 ;i< 35 ;i++){  
                  var obj:Object=new  Object();  
                  obj.photo_id=i.toString();  
                  obj.photo_name="photo" +i;  
                  ac.addItem(obj);    
               }  
               dg.init(ac);   
           }  
        ]]>  
     </mx:Script>  
  
     <!--设置pageSize为8 ,表示每页显示 8 条记录,不设置默认显示 10 条记录-->  
    <local:mygrid id="dg"  width= "100%"  height= "100%"  pageSize= "5" >  
       <local:arrColumns><!--为这个标签设置DataGridColumn,指示在DataGrid上显示的列-->  
           <mx:DataGridColumn headerText="id"  dataField= "photo_id" />   
           <mx:DataGridColumn headerText="name"  dataField= "photo_name" />  
       </local:arrColumns>
    </local:mygrid> 
    
</mx:Application>  
 
内容概要:本文详细介绍了基于FPGA的144输出通道可切换电压源系统的设计与实现,涵盖系统总体架构、FPGA硬件设计、上位机软件设计以及系统集成方案。系统由上位机控制软件(PC端)、FPGA控制核心和高压输出模块(144通道)三部分组成。FPGA硬件设计部分详细描述了Verilog代码实现,包括PWM生成模块、UART通信模块和温度监控模块。硬件设计说明中提及了FPGA选型、PWM生成方式、通信接口、高压输出模块和保护电路的设计要点。上位机软件采用Python编写,实现了设备连接、命令发送、序列控制等功能,并提供了一个图形用户界面(GUI)用于方便的操作和配置。 适合人群:具备一定硬件设计和编程基础的电子工程师、FPGA开发者及科研人员。 使用场景及目标:①适用于需要精确控制多通道电压输出的实验环境或工业应用场景;②帮助用户理解和掌握FPGA在复杂控制系统中的应用,包括PWM控制、UART通信及多通道信号处理;③为研究人员提供一个可扩展的平台,用于测试和验证不同的电压源控制算法和策略。 阅读建议:由于涉及硬件和软件两方面的内容,建议读者先熟悉FPGA基础知识和Verilog语言,同时具备一定的Python编程经验。在阅读过程中,应结合硬件电路图和代码注释,逐步理解系统的各个组成部分及其相互关系。此外,实际动手搭建和调试该系统将有助于加深对整个设计的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值