分享
 
 
 

flex 中使用分页,要数据库支持

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

使用方法

<PageSelector id="pageSelector"

numPagesToDisplay="5" <!--当前界面一次显示几页-->

pageSelected="kmfspx(kmfstaxis)" <!---->

borderStyle="none"

showZero="0" <!--是否显示0 及如果有100页 第一页显示为 001 -->

MaxRows="1212" <!--拥有的记录数-->

SimplePageRows="20" <!--多少条记录是一页-->

/>

查询时要用到的变量有

as 文件中 pageSelector.Startrow 当前选择页对应的数据库开始记录

pageSelector.Endrow 当前选择页对应的数据库结束记录

PageSelector.mxml 文件内容

<?xml version="1.0" encoding="utf-8"?>

<!--

-->

<mx:HBox xmlns:mx="http://www.macromedia.com/2003/mxml" visible="{totalPages > 0}" horizontalGap="-1" >

<mx:Script>

<![CDATA[

private var __currentPage : Number = 1;

private var __totalPages : Number = 0;

private var repeaterStartIndex : Number = 0;

private var pageStringLength : Number;

private var currentButton : mx.controls.Link;

public var __showZero:Number=0;

private var __MaxRows: Number =0;//得到的总行数

private var __SimplePageRows: Number;//单页要有的行数

//通过页数计算开始记录数

function get Startrow():Number

{

return (((currentPage-1)*SimplePageRows)+1);

}

//返回当前页的结束记录数

function get Endrow():Number

{

var re:Number=0;

if (currentPage != totalPages)

{

re = currentPage*SimplePageRows;

}

else if (currentPage == totalPages)

{

re =MaxRows;

}

return re;

}

[ChangeEvent("MaxRowsChanged")]

function get showZero() : Number

{

return __showZero;

}

function set showZero(tp : Number) : Void

{

__showZero=tp;

mathcountpage();

}

[ChangeEvent("MaxRowsChanged")]

function get MaxRows() : Number

{

return __MaxRows;

}

function set MaxRows(tp : Number) : Void

{

__MaxRows=tp;

mathcountpage();

}

[ChangeEvent("SimplePageRowsChanged")]

function get SimplePageRows() : Number

{

return __SimplePageRows;

}

function set SimplePageRows(tp : Number) : Void

{

__SimplePageRows=tp;

mathcountpage();

}

function mathcountpage()

{

var a:Number = __MaxRows ;

var b:Number = __SimplePageRows;

totalPages =(a -(a%b))/b +(((a%b)>0)?1:0);

}

[ChangeEvent("pageArrayChanged")]

private var pageArray : Array;

public var numPagesToDisplay : Number;

[ChangeEvent("pageSelected")]

function get currentPage() : Number

{

return __currentPage;

}

function set currentPage(cp : Number) : Void

{

__currentPage = cp;

dispatchEvent({type: 'pageSelected'});

}

[ChangeEvent("totalPagesChanged")]

function get totalPages() : Number

{

return __totalPages;

}

function set totalPages(tp : Number) : Void

{

__totalPages = tp;

if (pageArray == null) pageArray = new Array();

if (tp > pageArray.length)

{

for (var i = pageArray.length+1; i <= tp; ++i)

{

pageArray.push(i);

}

}

else if (tp < pageArray.length)

{

pageArray.splice(tp);

}

pageStringLength = String(tp).length;

dispatchEvent({type: 'totalPagesChanged'});

dispatchEvent({type: 'pageArrayChanged'});

}

private function moveToBeginning()

{

repeaterStartIndex = 0;

updateCurrentButton(undefined);

}

private function moveToEnd()

{

var mod = totalPages % numPagesToDisplay;

if (mod == 0) mod = numPagesToDisplay;

repeaterStartIndex = totalPages - mod;

updateCurrentButton(undefined);

}

private function previousPageGroup()

{

if (repeaterStartIndex - numPagesToDisplay >= 0)

{

updateCurrentButton(undefined);

repeaterStartIndex -= numPagesToDisplay;

}

}

private function nextPageGroup()

{

if (repeaterStartIndex + numPagesToDisplay < totalPages)

{

updateCurrentButton(undefined);

repeaterStartIndex += numPagesToDisplay;

}

}

private function selectPage(page) : Void

{

currentPage = page.getRepeaterItem();

updateCurrentButton(page);

}

function updateCurrentPage(newCurrentPage : Number) : Void

{

var butIndex = newCurrentPage % numPagesToDisplay;

repeaterStartIndex = newCurrentPage - butIndex;

selectPage(pageButton[butIndex]);

}

private function updateCurrentButton(cb : mx.controls.Link) : Void

{

if (currentButton != undefined)

{

currentButton.setStyle("color", undefined);

}

if (cb != undefined)

{

cb.setStyle("color", 0xAA0000);

}

currentButton = cb;

}

private function formatPageNumber(num : Number) : String

{

var str : String = String(num);

var diff : Number = pageStringLength - str.length;

if (showZero==1)

switch(diff)

{

case 0 : return str;

case 1 : return "0" + str;

case 2 : return "00" + str;

case 3 : return "000" + str;

case 4 : return "0000" + str;

case 5 : return "00000" + str;

default : return str; //don't worry about it

}

else

{

return str;

}

}

]]>

</mx:Script>

<mx:Metadata>

[Event("pageSelected")]

</mx:Metadata>

<mx:Link id="beginningButton" icon="@Embed('left2.jpg')" height="22" click="moveToBeginning()" enabled="{repeaterStartIndex > 0}"/>

<mx:Link id="prevPageButton" icon="@Embed('left.jpg')" height="22" click="previousPageGroup()" enabled="{repeaterStartIndex > 0}"/>

<mx:Repeater id="pageRepeater" dataProvider="{pageArray}" recycleChildren="true"

startingIndex="{repeaterStartIndex}" count="{numPagesToDisplay}">

<mx:Link id="pageButton" label="{formatPageNumber(pageRepeater.currentItem)}" click="selectPage(event.target)" />

</mx:Repeater>

<mx:Link id="nextPageButton" icon="@Embed('right.jpg')" height="22" click="nextPageGroup()" enabled="{repeaterStartIndex + numPagesToDisplay &lt; totalPages}"/>

<mx:Link id="endButton" icon="@Embed('right2.jpg')" height="22" click="moveToEnd()" enabled="{repeaterStartIndex + numPagesToDisplay &lt; totalPages}"/>

</mx:HBox>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有