페이징

|

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="load()">
 <mx:Style>

 </mx:Style>
 <mx:Script>
  <![CDATA[
   import mx.events.ItemClickEvent;
   import mx.collections.ArrayCollection;
 
   include "spXML_List.as";
   import  mx.controls.Alert;
   import mx.collections.ArrayCollection;
   import mx.controls.Button;
   
    [Bindable]
   public var nav:ArrayCollection = new ArrayCollection();
   
   private function ClickPrev():void
   {
    var page:int = spXML_List.page;
    if(page <= 1){
     Alert.show('처음 페이지 입니다.');
    }else{
     page-=1;
     spXML_List.page = page;
    }
   }
   
   private function ClickNext():void
   {
    var page:int = spXML_List.page;
    if(page >= spXML_List.total_page){
     Alert.show("마지막 페이지 입니다.");
    }else{
     page+=1;
     spXML_List.page = page;
    }
   }
   
 
   
    private function load():void{
     for(var i:Number = 2; i < 50; i++){
     spXML_List.newElement = <item>
            <num>{i}</num>
            <constnm>민방위 경보시스템 교체,보강조달구매 설치 </constnm>
            <itemcode>통신</itemcode>
            <basic>32,000,000</basic>
            <yega>31,970,640</yega>
            <success>31,493,000</success>
            <spb>98.4156</spb>
            <ypb>-0.0917</ypb>
            <sypb>12.1609</sypb>
            <constdt>08.06.20</constdt>
           </item>;
    } 
     
     pageing(spXML_List.page);

   
    }
   
   
    private function pageing(page:Number):void{
    var p_min:Number = spXML_List.p_min;
    var p_max:Number = spXML_List.p_max;
    var total_page:Number = spXML_List.total_page;
   
    nav.removeAll();        
     
     if(p_min > 1){
      nav.addItem({label:"이전", data:p_min-1, id:"pre"});
     }
     
     //Alert.show(page.toString());
     for(var j:Number = p_min; j <= p_max; j++){
      nav.addItem({label:j, data:j});
     }
     
     if(p_max < total_page){
      nav.addItem({label:"다음", data:p_max+1});
     }
     
     spXML_List.page = page;   
    }
   
    private function navigatePage(event:ItemClickEvent):void{
     var lb:String = event.item.label;
     
     if(lb.indexOf("다음") > -1){
      spXML_List.p_min = event.item.data;
      spXML_List.p_max = event.item.data + 4;
      lb = event.item.data;
     }else if(event.item.id == 'pre'){
      spXML_List.p_min = event.item.data - 4;
      spXML_List.p_max = event.item.data;
      lb = event.item.data;
     }
     
     pageing(Number(lb));
    }
   
    private function N_page(min:int, max:int):void{
     trace(min);
     
    }

    
  ]]>
 </mx:Script>
 



 <mx:Canvas id='listBox' width="80%" borderStyle="solid" backgroundColor="blue" showEffect="Fade" hideEffect="Fade" x="35" y="29">
  <mx:Panel layout="absolute" title="List" width="100%" x="0">
   <mx:DataGrid  width="100%" height="285"
    rowCount="12"
    id="ListGrid"
    dataProvider="{spXML_List.item}"
    horizontalCenter="0"
    fontSize="12"
    fontFamily="Arial"
    >
    <mx:columns>
     <mx:DataGridColumn headerText="번호" dataField="num" width="35" />
     <mx:DataGridColumn headerText="공고명" dataField="constnm" width="300"/>
     <mx:DataGridColumn headerText="업종" dataField="itemcode"/>
     <mx:DataGridColumn headerText="기초금액" dataField="basic"/>
     <mx:DataGridColumn headerText="예정가격" dataField="yega"/>
     <mx:DataGridColumn headerText="1순위 투찰금액" dataField="success"/>
     <mx:DataGridColumn headerText="1순위 기초대비" dataField="spb"/>
     <mx:DataGridColumn headerText="예가/기초" dataField="ypb"/>
     <mx:DataGridColumn headerText="1순위사정율" dataField="sypb"/>
     <mx:DataGridColumn headerText="입찰일" dataField="constdt"/>
    </mx:columns>
   </mx:DataGrid>
 
  
   
  </mx:Panel>
 </mx:Canvas>
 <mx:Text text="Total: {spXML_List.total_page} Page:{spXML_List.page} / {spXML_List.total_page}" fontSize="10" y="35" x="73"/>
 <mx:Button label="Previous" click="ClickPrev()"  x="780" y="32"/><mx:Button label="Next" click="ClickNext()"  x="865" y="32"/>
 
 <mx:ToggleButtonBar id="PageNav"  x="73" y="394" dataProvider="{nav}" itemClick="navigatePage(event)" horizontalGap="5"/>
 
</mx:Application>

-----------------------------------------------------------------------------------------------

as파일

// ActionScript file
[Bindable]

public var spXML_List:XML =
<rr>
 <total_num>49</total_num>
 <total_page>10</total_page>
 <page>1</page>
 <p_min>1</p_min>
 <p_max>5</p_max>
 
 
 <item>
  <num>1</num>
  <constnm>민방위 경보시스템 교체,보강조달구매 설치 </constnm>
  <itemcode>통신</itemcode>
  <basic>32,000,000</basic>
  <yega>31,970,640</yega>
  <success>31,493,000</success>
  <spb>98.4156</spb>
  <ypb>-0.0917</ypb>
  <sypb>12.1609</sypb>
  <constdt>08.06.20</constdt>
 </item>

</rr>;

And