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  

 

转载于:https://www.cnblogs.com/jsbrml/archive/2010/12/21/1912745.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值