• DataGrid分页显示 pageList


    excutClass类
    1 package
    2 {
    3 import mx.collections.ArrayCollection;
    4 import mx.managers.CursorManager;
    5 import mx.rpc.AbstractOperation;
    6 import mx.rpc.events.FaultEvent;
    7 import mx.rpc.events.ResultEvent;
    8 import mx.rpc.soap.WebService;
    9 public class ExecuteClass
    10 {
    11 public function ExecuteClass()
    12 {
    13 }
    14
    15 public function ExecuteQuery(serviceurl:String,Complete:Function,Fault:Function,sql:String,startIndex:int,ResultNum:int):void
    16 {
    17 var ob:Object=new Object();
    18 ob.sql=sql;
    19 ob.startidx=startIndex;
    20 ob.recordNum=ResultNum;
    21 Service(serviceurl,"ExecuteQuery",ob,OnComplete,OnFault);
    22 function OnComplete(ev:ResultEvent):void
    23 {
    24 var result:Object=ev.result;
    25 if(result)
    26 {
    27 var ret:Object=new Object();
    28 ret.FieldName=result.FieldName;
    29 ret.RecordCount=result.recordNum;
    30 if(result.value)
    31 {
    32 var tempValue:ArrayCollection=result.value;
    33 var tempLen:int=tempValue.length;
    34 //ret.value=result.value;
    35 var tempArray:ArrayCollection=new ArrayCollection();
    36 for(var x:int=0;x<tempLen;x++)
    37 {
    38 var arr:ArrayCollection=result.value[x].Field;
    39 var tempob:Object=new Object();
    40 for(var y:int=0;y<arr.length;y++)
    41 {
    42 tempob[result.FieldName[y]]=result.value[x].Field[y];
    43 }
    44 tempArray.addItem(tempob);
    45 }
    46 ret.data=tempArray;
    47 }
    48 Complete(ret);
    49 }
    50 }
    51 function OnFault(ev:FaultEvent):void
    52 {
    53 Fault(ev);
    54 }
    55 }
    56 public function ExecuteNonQuery(serviceurl:String,Complete:Function,Fault:Function,sql:String,split:String=""):void
    57 {
    58 var ob:Object=new Object();
    59 ob.sql=sql;
    60 ob.split=split;
    61 Service(serviceurl,"ExecuteNonQuery",ob,OnComplete,OnFault);
    62 function OnComplete(ev:ResultEvent):void
    63 {
    64 var result:Object=ev.result;
    65 if(result)
    66 {
    67 if(result=="Success")
    68 {
    69 Complete(ev.result);
    70 }
    71 else
    72 {
    73 Complete(result.toString());
    74 }
    75 }
    76 else
    77 {
    78 Complete("Error");
    79 }
    80 }
    81 function OnFault(ev:FaultEvent):void
    82 {
    83 Fault(ev);
    84 }
    85 }
    86 public function Service(serviceurl:String,FunctionName:String,arg:Object,Complete:Function,Fault:Function):void
    87 {
    88 mx.managers.CursorManager.setBusyCursor();
    89 var webSer:WebService=new WebService();
    90 webSer.wsdl=serviceurl;
    91 webSer.useProxy=false;
    92 webSer.loadWSDL();
    93 var op:AbstractOperation=webSer.getOperation(FunctionName);
    94 op.arguments=arg;
    95 op.addEventListener(ResultEvent.RESULT, OnRequestServiceComplete);
    96 op.addEventListener(FaultEvent.FAULT, OnRequestServiceFault);
    97 op.send();
    98 function OnRequestServiceComplete(ev:ResultEvent):void
    99 {
    100 mx.managers.CursorManager.removeBusyCursor();
    101 Complete(ev);
    102 }
    103 function OnRequestServiceFault(ev:FaultEvent):void
    104 {
    105 mx.managers.CursorManager.removeBusyCursor();
    106 Fault(ev);
    107 }
    108 }
    109 }
    110 }
    pagelist组件
    <?xml version="1.0" encoding="utf-8"?>
    <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" horizontalAlign="center" fontSize="12" width="100%" height="100%">
    <mx:DataGrid id="dg" width="90%"/>
    <mx:HBox width="90%" height="30">
    <mx:Label text="共"/>
    <mx:Label id="countsData" text="{this._recordCont}"/>
    <mx:Label text="条记录"/>
    <mx:Label text="当前第"/>
    <mx:Label id="currentNum" text="{this._currentPage}"/>
    <mx:Label text="页/共"/>
    <mx:Label id="totalsNum" text="{this._pageCounts}"/>
    <mx:Label text="页"/>
    <mx:LinkButton id="f" label="首页" click="queryFirst()" textDecoration="underline" fontWeight="normal"/>
    <mx:Spacer width="5"/>
    <mx:LinkButton id="l" label="上一页" click="queryUp()" textDecoration="underline" fontWeight="normal"/>
    <mx:Spacer width="5"/>

    <mx:LinkButton id="n" label="下一页" click="queryNext()" textDecoration="underline" fontWeight="normal"/>
    <mx:Spacer width="5"/>
    <mx:LinkButton id="e" label="末页" click="queryLast()" textDecoration="underline" fontWeight="normal"/>
    </mx:HBox>
    <mx:Script>
    <![CDATA[
    import mx.collections.ArrayCollection;
    import mx.controls.dataGridClasses.DataGridColumn;
    //----------------属性-----------------------------------
    //总页数
    [Bindable]
    private var _pageCounts:Number=0;
    //当前页数
    [Bindable]
    private var _currentPage:Number=0;
    //每页显示记录数
    [Bindable]
    private var _pagesize:Number=7;
    //记录数
    [Bindable]
    private var _recordCont:Number=0;
    //dataGrid 列数
    [Bindable]
    private var _colNum:Number=3;
    //-------------------
    [Bindable]
    private var _columnHead:Array=new Array("用户名","密码","单位");
    //--------------------
    [Bindable]
    private var _columnFile:Array=new Array("用户名","密码","单位");

    [Bindable]
    public var dataSource:ArrayCollection=new ArrayCollection();


    public var startN:Number=0;
    public var endN:Number=0;
    //*******************************
    public function set pageCounts(value:Number):void
    {
    _pageCounts=value;
    }
    public function get pageCounts():Number
    {
    return _pageCounts;
    }
    //************************************
    public function set currentPage(value:Number):void
    {
    _currentPage=value;
    }
    public function get currentPage():Number
    {
    return _currentPage;
    }
    //***************************************
    public function set pagesize(value:Number):void
    {
    _pagesize=value;
    }
    public function get pagesize():Number
    {
    return _pagesize;
    }
    //****************************************
    public function set recordCont(value:Number):void
    {
    _recordCont=value;
    }
    public function get recordCont():Number
    {
    return _recordCont;
    }
    //****************************************
    public function set colNum(value:Number):void
    {
    _colNum=value;
    }
    public function get colNum():Number
    {
    return _colNum;
    }
    //********************************************
    public function set columnHead(value:Array):void
    {
    _columnHead=value;
    }
    public function get columnHead():Array
    {
    return _columnHead;
    }
    //*******************************************
    public function set columnFile(value:Array):void
    {
    _columnFile=value;
    }
    public function get columnFile():Array
    {
    return _columnFile;
    }
    //*******************************************

    //----------------方法-----------------------------------------
    public function initSet():void
    {
    for(var i:Number=0;i<_colNum;i++)
    {
    var column:DataGridColumn= new DataGridColumn();
    column.headerText =_columnHead[i];
    column.dataField=_columnFile[i];
    dg.columns = dg.columns.concat(column);
    l.enabled=false;
    n.enabled=false;
    f.enabled=false;
    e.enabled=false;
    }
    }

    public function bindData(arr:ArrayCollection):void
    {
    l.enabled=false;
    n.enabled=true;
    f.enabled=true;
    e.enabled=true;
    _recordCont=arr.length;
    endN=_pagesize;
    if(endN>=_recordCont)
    {
    endN=_recordCont;
    n.enabled=false;
    }
    _pageCounts=Number(int(_recordCont/_pagesize))+1;
    _currentPage=1;
    dg.dataProvider=additem(arr,startN,endN);
    }

    private function additem(arr:ArrayCollection,startN:Number,endN:Number):ArrayCollection
    {
    var result:ArrayCollection=new ArrayCollection();
    for(var i:Number=startN;i<endN;i++)
    {
    result.addItem(arr.getItemAt(i));
    }
    return result;
    }
    private function queryFirst():void
    {
    if(dataSource)
    {
    startN=0;
    endN=_pagesize;
    if(endN>=_recordCont)
    endN=_recordCont;
    else
    n.enabled=true;
    l.enabled=false;
    _currentPage=1;
    dg.dataProvider=additem(dataSource,startN,endN);
    }
    }


    private function queryUp():void
    {
    if(dataSource)
    {
    l.enabled=true;
    n.enabled=true;
    startN=startN-_pagesize;
    endN=startN+_pagesize;
    if(endN>=_recordCont)
    endN=_recordCont;
    _currentPage=_currentPage-1;
    if(_currentPage==1)
    l.enabled=false;
    dg.dataProvider=additem(dataSource,startN,endN);
    }
    }


    private function queryNext():void
    {
    if(dataSource)
    {
    l.enabled=true;
    n.enabled=true;
    startN=startN+_pagesize;
    endN=endN+_pagesize;
    if(endN>=_recordCont)
    {
    endN=_recordCont;
    n.enabled=false;
    }
    _currentPage=_currentPage+1;
    dg.dataProvider=additem(dataSource,startN,endN);
    }
    }


    private function queryLast():void
    {
    if(dataSource)
    {
    l.enabled=true;
    n.enabled=false;
    _currentPage=_pageCounts;
    startN=(_currentPage-1)*_pagesize;
    endN=_recordCont;
    if(_currentPage==1)
    l.enabled=false;
    dg.dataProvider=additem(dataSource,startN,endN);
    }
    }
    ]]>
    </mx:Script>
    </mx:VBox>
    测试文件
    1 <?xml version="1.0" encoding="utf-8"?>
    2  <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local="*" creationComplete="init()">
    3 <local:pageList id="pl" width="600" height="400"/>
    4 <mx:Button label="search" click="dosearch()"/>
    5 <mx:Script>
    6 <![CDATA[
    7 import mx.controls.Alert;
    8 private var exc:ExecuteClass=new ExecuteClass();
    9 private function init():void
    10 {
    11 pl.pagesize=6; //每页显示记录数
    12 //--------此处设置dataGrid的显示列数并绑定字段-------------//
    13 pl.colNum=4;
    14 pl.columnHead=new Array("用户名","密码","单位","地址");
    15 pl.columnFile=new Array("用户名","密码","单位","地址");
    16 //---------------------------------------------------//
    17 pl.initSet(); //必须调用以设置组件参数
    18 }
    19
    20 private function dosearch():void
    21 {
    22 var sql:String="select s.* from (select rowNum ,重要目标编码 as 用户名 ,分类 as 密码 ,分级 as 单位 ,单位 as 地址 from 重要经济目标分布) s";
    23 exc.ExecuteQuery("http://10.1.161.186/QueryService/service.asmx?WSDL",result,fault,sql,0,-1)
    24 function result(ob:Object):void
    25 {
    26 if(ob.data)//此处将调用服务,将结果绑定给自定义组件,一切over了。
    27 {
    28 pl.dataSource=ob.data;
    29 pl.bindData(ob.data);
    30 }
    31 }
    32
    33 function fault(ev:Event):void
    34 {
    35 Alert.show("获取数据失败");
    36 }
    37 }
    38 ]]>
    39 </mx:Script>
    40  </mx:Application>
    41  
    Right! is "Fuck GIS",but don't think too much; It means reach a high during playing GIS. Come on!
  • 相关阅读:
    Js 之xterm.js终端插件
    Mysql 之获取和修改注释
    Js 之codemirror文本编辑器
    Apicloud 之视频播放项目实战
    PHP 之极验验证插件
    PHP 之CI框架+GatewayWorker+AmazeUI仿微信聊天网页版
    PHP 之Html标签转义与反转义
    关于Vue中props的详解
    css特效之旋转音乐播放器
    微信小程序获取地理位置
  • 原文地址:https://www.cnblogs.com/jsbrml/p/1912745.html
Copyright © 2020-2023  润新知