<?xml version="1.0" encoding="utf-8"?>
<mx:Application initialize="oninit()" xmlns:mx="http://www.adobe.com/2006/mxml" fontFamily="宋体" fontSize="12" xmlns:ns2="*">
<mx:HTTPService id="hscom" url="getcomlist.jsp?co_no="
result="hsResult(event)" showBusyCursor="true" resultFormat="xml">
</mx:HTTPService>
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import flash.events.Event;
import mx.rpc.events.*;
private var itemsXML:XMLList;
//private var items:Array = new Array();
System.useCodePage=true;
private function oninit():void
{
hscom.send();
pagebar1.setPageSize(2);
}
private function hsResult(event:ResultEvent):void{
// hscom.resultFormat="text"
itemsXML=XMLList(XML(event.result.valueOf()).children());
//var opt:XML;
//for (var k:int=0;k<itemsXML.length();k++) {
//opt=XML(itemsXML[k].toXMLString());
// items.push({cid:opt.children()[0].toString(),cname:opt.children()[1].toString()
// ,pname:opt.children()[2].toString(),phone:opt.children()[3].toString()
// ,pmail:opt.children()[4].toString(),addr:opt.children()[5].toString()});
//}
//pagebar1.RecordCount =items.length;
pagebar1.RecordCount =6;//itemsXML.length();
pagebar1.Open();
}
private function pagechange(e:PageChangeEvent):void
{
//datalist.dataProvider = e.Filter(items);
datalist.dataProvider = e.FilterXml(itemsXML);
}
]]>
</mx:Script>
<mx:DataGrid width="100%" height="198" id="datalist">
<mx:columns>
<mx:Array>
<mx:DataGridColumn dataField="cid" headerText="编号"/>
<mx:DataGridColumn dataField="cname" headerText="公司名"/>
<mx:DataGridColumn dataField="pname" headerText="联系人"/>
<mx:DataGridColumn dataField="phone" headerText="电话"/>
<mx:DataGridColumn dataField="pmail" headerText="Email"/>
<mx:DataGridColumn dataField="addr" headerText="企业地址"/>
</mx:Array>
</mx:columns>
</mx:DataGrid>
<ns2:PageBar id="pagebar1" PageChange="pagechange(event)">
</ns2:PageBar>
</mx:Application>
-------------------------------
PageBar.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="466" height="40">
<mx:Metadata>
[Event(name="PageChange", type="PageChangeEvent",bubbles="true",cancelable="true")]
</mx:Metadata>
<mx:Button click="method_le()" id="c_le" enabled="false" x="10" y="10" label="《-"/>
<mx:Button click="method_l()" id="c_l" enabled="false" x="56" y="10" label="《"/>
<mx:ComboBox rowCount="10" change="method_select()" id="c_select" enabled="false" x="102" y="10" width="54"></mx:ComboBox>
<mx:Button click="method_r()" id="c_r" enabled="false" x="162" y="10" label="》"/>
<mx:Button click="method_re()" id="c_re" enabled="false" x="206" y="10" label="-》"/>
<mx:Script>
<![CDATA[
import mx.controls.Alert;
private var mRecordCount:int=0;
private var mPageSize:int =10;
private var mPageIndex:int =0;
private var mPageCount:int = 0;
public function setPageSize(k:int):void
{
mPageSize=k;
if(mRecordCount>0)
OnPageChange();
}
public function method_l():void
{
mPageIndex=mPageIndex-1;
SetState();
OnPageChange();
}
public function method_le():void
{
mPageIndex =0;
SetState();
OnPageChange();
}
public function method_r():void
{
mPageIndex=mPageIndex+1;
SetState();
OnPageChange();
}
public function method_re():void
{
mPageIndex=mPageCount-1;
SetState();
OnPageChange();
}
public function method_select():void
{
mPageIndex = c_select.selectedItem.data;
SetState();
OnPageChange();
}
public function get PageIndex():int
{
return mPageIndex;
}
//设置记录总数
public function set RecordCount(count:int):void
{
mRecordCount= count;
if(count >0)
{
SetState();
}
}
private function SetState():void
{
if(mRecordCount%mPageSize > 0)
{
mPageCount = mRecordCount/mPageSize+1;
}
else
{
mPageCount = mRecordCount/mPageSize;
}
var pages:Array = new Array();
for(var i:int =1;i<=mPageCount;i++)
{
pages.push( {label:i.toString(), data:i-1});
}
c_select.dataProvider= pages;
c_select.selectedIndex= mPageIndex;
if(mPageCount>1)
{
c_select.enabled=true;
c_l.enabled=true;
c_le.enabled=true;
c_r.enabled=true;
c_re.enabled=true;
if(mPageIndex==0)
{
c_l.enabled=false;
c_le.enabled=false;
}
if(mPageIndex == mPageCount-1)
{
c_r.enabled=false;
c_re.enabled=false;
}
}
else
{
c_select.enabled=false;
c_l.enabled=false;
c_le.enabled=false;
c_r.enabled=false;
c_re.enabled=false;
}
pageinfo.text="总记录:" + mRecordCount+" / 总页数" + mPageCount;
}
//获取记录总数
public function get RecordCount():int
{
return mRecordCount;
}
//打开分页控件
public function Open():void{
mPageIndex =0;
OnPageChange();
}
//刷新当前页面
public function Refresh():void
{
OnPageChange();
}
private function OnPageChange():void
{
var e:PageChangeEvent = new PageChangeEvent(mPageIndex,mPageSize);
dispatchEvent(e);
}
]]>
</mx:Script>
<mx:Label x="277" y="10" width="175" id="pageinfo"/>
</mx:Canvas>
--------------------------
PageChangeEvent.as
// ActionScript file
package
{
import mx.controls.Alert;
import flash.events.Event;
import mx.events.IndexChangedEvent;
public class PageChangeEvent extends flash.events.Event
{
public function PageChangeEvent(pageindex:int,pagesize:int)
{
super("PageChange");
PageIndex= pageindex;
PageSize =pagesize;
}
public var PageIndex:int=0;
public var PageSize:int=0;
public function Filter(list:Array):Array
{
var newlist:Array = new Array();
var start:int = PageSize*PageIndex;
var end:int = start+PageSize;
for(var i:int = start;i<end;i++)
{
if(i< list.length)
{
newlist.push(list);
}
else
break;
}
return newlist;
}
public function FilterXml(list:XMLList):XMLList
{
var start:int = PageSize*PageIndex;
var end:int = start+PageSize;
var str:String="<root>";
for(var i:int = start;i<end;i++)
{
if(i<list.length())
{
str=str+"\n";
str=str+list.toXMLString();
}
else
break;
}
str=str+"</root>";
var newlist:XMLList=XMLList(XML(str).children());
return newlist;
}
}
}
---------------
getcomlist.jsp
<%
out.println("<?xml version=\"1.0\" encoding=\"utf-8\" ?><coms>");
out.println("<com><cid>1</cid><cname>gongsi1</cname><pname>ren1</pname>"); out.println("<phone>6312</phone><pmail>qwcy@126.com</pmail><addr>henan</addr></com>");
out.println("</coms>");
%>
----------------
后记:
xml(str)这个函数的转化,字符串必须要有根节点,否则报错
HTTPService 如果采用<mx:HTTPService ...>
<mx:request>
<co_no>1</co_no>
</mx:request>
</mx:HTTPService>形式,co_no参数为空会报错

爱国有理,抗日无罪。支持国产,我愿为先