成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

解析如何使用Flex開發DataGrid分頁控件

開發 后端
本文向大家簡單介紹一下使用Flex開發DataGrid分頁控件,開發Flex的DataGrid分頁控件分頁(paging)控件,支持客戶端、服務端兩種分頁形式。

在學習Flex的過程中你可能會遇到使用Flex開發DataGrid分頁控件方面的問題,這里和大家分享一下,開發Flex的DataGrid分頁控件分頁(paging)控件,支持客戶端、服務端兩種分頁形式。

使用Flex開發DataGrid分頁控件

下面教程開發Flex的DataGrid分頁控件分頁(paging)控件,支持客戶端、服務端兩種分頁形式;這里著重分享一下思路,雖然是用Flex做的,但只要掌握了思路,用別的編程語言也能達到同樣的效果。

DataGrid分頁控件分頁效果圖

 

設計思路:

1,客戶端、服務端

  (1)客戶端分頁:將數據一次性取到客戶端,客戶要看哪一頁的數據,顯示哪一頁的數據。
  (2)服務端分頁:客戶要看哪一頁的數據,向服務端請求哪一頁的數據,客戶端將請求到的數據顯示給用戶(可以在客戶端、服務端分別做緩存,加快數據的讀取),由于Flex本身不具有數據庫訪問能力,可以考慮通過WebServices向服務器傳遞數據,數據的表示形式可以是XML、JSON(本文采用XML的形式)

2,分頁表示層的設計

  (1)頁碼條中4個按鈕;這四個按鈕分別為轉到第一頁,前一頁,后一頁,最后一頁;當這四個按鈕中的任意一點被點擊時,頁碼要重繪,當前頁碼變化;且還要考慮當頁碼中有第一頁時,前兩個按鈕要隱藏起來;當頁碼中有最后一頁時,后兩個按鈕要隱藏起來。
  (2)頁碼條中頁碼;當點擊頁碼條中的頁碼時,DataGrid分頁控件中更新顯示數據即可,當前頁碼變化。
  (3)顯示總頁數,總記錄數;
  (4)每頁記錄數,讓用戶通過下拉框選擇;當用戶選擇新的每頁顯示記錄數時,頁碼要重繪,總頁數發生變化,當前頁碼變化。
  (5)頁碼輸入框,讓用戶輸入任意頁碼(要檢查輸入數據是否合法),DataGrid分頁控件顯示頁碼中的數據,頁碼要重繪,總頁數變化。
  (6)查看所有;分頁中的特殊情況,將每頁記數置為記錄總數即可達到要求!頁碼要重繪,總頁數發生變化,當前頁碼變化

 

下面貼出代碼實現:

代碼說明

(1)分頁功能條,做一個自定義組件,布局如下:

Code[http://www.xueit.com]
 

  1. 1<mx:HBoxpaddingTopmx:HBoxpaddingTop="8"> 
  2. 2<mx:Buttonidmx:Buttonid="firstNavBtn"icon="{firstIcon}"width="10"height="10"click="navigateButtonClick('firstPage');"/> 
  3. 3<mx:Buttonidmx:Buttonid="preNavBtn"icon="{preIcon}"width="7"height="10"click="navigateButtonClick('prePage');"/> 
  4. 4</mx:HBox> 
  5. 5<mx:LinkBaridmx:LinkBarid="pageNav"itemClick="navigatePage(event)"dataProvider="{nav}"/> 
  6. 6<mx:HBoxpaddingTopmx:HBoxpaddingTop="8"> 
  7. 7<mx:Buttonidmx:Buttonid="nextNavBtn"icon="{nextIcon}"width="7"height="10"click="navigateButtonClick('nextPage');"/> 
  8. 8<mx:Buttonidmx:Buttonid="lastNavBtn"icon="{lastIcon}"width="10"height="10"click="navigateButtonClick('lastPage');"/> 
  9. 9</mx:HBox> 
  10. 10<mx:VRuleheightmx:VRuleheight="25"/> 
  11. 11<mx:LabelpaddingTopmx:LabelpaddingTop="3"id="totalPagesLabel"text=""/> 
  12. 12<mx:LabelpaddingTopmx:LabelpaddingTop="3"id="totalRecordLabel"text=""/> 
  13. 13<mx:LabelpaddingTopmx:LabelpaddingTop="3"text="每頁記錄:"/> 
  14. 14<mx:ComboBoxidmx:ComboBoxid="pageSizeComobox"cornerRadius="0"paddingLeft="0"fontWeight="normal"  
  15. width="50"arrowButtonWidth="10"change="pageSizeSelectChange()"/> 
  16. 15<mx:LabelpaddingTopmx:LabelpaddingTop="3"text="頁碼:"/> 
  17. 16<mx:TextInputidmx:TextInputid="pageNumber"width="40"keyDown="pageIndexInsertChange(event);"/> 
  18. 17<mx:LinkButtonidmx:LinkButtonid="viewAllLinkBtn"label="查看所有"click="viewAll();"/> 

 (2)頁碼條繪制方法,傳參數為頁碼中的第一個頁碼

Code[http://www.xueit.com]
 

  1. 1/**  
  2. 2*構建頁碼條  
  3. 3*pages:總頁數  
  4. 4*pageIndex:當前頁(注意,從0開始)  
  5. 5*  
  6. 6*/  
  7. 7privatefunctioncreateNavBar(pageIndex:uint=0):void{  
  8. 8nav.removeAll();  
  9. 9//向前圖標操作,first,Pre  
  10. 10if(pageIndex>1){  
  11. 11firstPage=0;  
  12. 12firstNavBtn.visible=true;  
  13. 13//  
  14. 14varintLFive:int=pageIndex-navSize;//calculatestartoflast5;  
  15. 15//  
  16. 16prePage=intLFive;  
  17. 17preNavBtn.visible=true;  
  18. 18}  
  19. 19else{  
  20. 20firstNavBtn.visible=false;  
  21. 21preNavBtn.visible=false;  
  22. 22}  
  23. 23//頁碼條  
  24. 24for(varx:uint=0;x<navSize;x){  
  25. 25varpg:uint=xpageIndex;26nav.addItem({label:pg1,data:pg});  
  26. 27//28varpgg:uint=pg1;  
  27. 29if(pgg>=totalPages){//搜索到最后一個頁碼,停止添加到navbar  
  28. 30x=navSize;  
  29. 31}32}33//計算最后一組頁碼條中第一個頁碼的頁碼編號  
  30. 34varlastpage:Number=0;  
  31. 35for(vary:uint=navSize;y<=totalPages-1;y=ynavSize){
  32. //letscalculatethelastpagebutton  
  33. 36if(y5>navSize){  
  34. 37lastpage=y;  
  35. 38}  
  36. 39}  
  37. 40//向后圖標  
  38. 41if(pg<totalPages-1){  
  39. 42nextPage=pg1;  
  40. 43nextNavBtn.visible=true;  
  41. 44lastPage=lastpage;  
  42. 45lastNavBtn.visible=true;  
  43. 46}  
  44. 47else{  
  45. 48nextNavBtn.visible=false;  
  46. 49lastNavBtn.visible=false;  
  47. 50}  
  48. 51}  

 3、分頁觸發的方法,組件中有一個屬性為pagingFunction,為向服務端請求數據的函數;當該函數為空時,調用客戶端分頁;反之調用該方法進行服務端分頁。

Code[http://www.xueit.com]
 

  1. 1/**  
  2. 2*更新數據源,更新表格顯示數據  
  3. 3*/  
  4. 4privatefunctionrefreshDataProvider(pageIndex:uint,isCreateNavBar:Boolean=true,
  5. pageSize:uint=0,resultReturn:Boolean=false):void{  
  6. 5//分頁函數  
  7. 6if(DataGrid分頁控件==null)return;  
  8. 7currentPageIndex=pageIndex;  
  9. 8if(pageSize==0){  
  10. 9pageSize=this.pageSize;10}else{  
  11. 11this.pageSize=pageSize;  
  12. 12if(!resultReturn)totalPages=Math.ceil(orgData.length/pageSize);  
  13. 13}  
  14. 14if(!resultReturn){  
  15. 15if(this.pagingFunction!=null){  
  16. 16pagingFunction(pageIndex,pageSize);  
  17. 17this.isCreateNavBar=isCreateNavBar;  
  18. 18}  
  19. 19else{  
  20. 20viewData=newArrayCollection(orgData.source.slice((pageIndex*pageSize),(pageIndex*pageSize)pageSize));  
  21. 21DataGrid分頁控件.dataProvider=viewData;  
  22. 22pageNumber.text=(pageIndex1).toString();  
  23. 23  
  24. 24totalRecordLabel.text='總記錄數:'orgData.length.toString();  
  25. 25}  
  26. 26}  
  27. 27else{  
  28. 28DataGrid分頁控件.dataProvider=orgData;  
  29. 29totalPages=Math.ceil(totalRecord/pageSize);  
  30. 30pageNumber.text=(pageIndex1).toString();  
  31. 31totalRecordLabel.text='總記錄數:'totalRecord.toString()  
  32. 32}  
  33. 33totalPagesLabel.text='總頁數:'totalPages;  
  34. 34if(isCreateNavBar)createNavBar(pageIndex);  
  35. 35} 

代碼下載
/Files/badwps/FlexPagingBar.rar

【編輯推薦】

  1. 學習筆記 在Flex中如何使用CSS文件
  2. FlexBuilder4十大新特性閃亮登場
  3. Flex框架中Cairngorm和Mate的優點大比拼
  4. FlexBuilder3.0與Eclipse3.4的完美結合
  5. 解析Flex應用開發步驟 新特性和技術框架 

 

責任編輯:佚名 來源: cnblogs.com
相關推薦

2010-07-28 09:29:36

Flex DataGr

2010-08-11 16:10:27

Flex DataGr

2009-08-21 15:27:11

C# DataGrid

2009-08-07 09:20:26

DataPager數據

2010-08-11 16:30:49

Flex DataGr

2010-08-11 13:28:46

Flex行為

2010-07-30 16:17:18

Flex開發

2010-08-03 14:24:37

Flex與java集成

2010-08-12 13:59:37

FlexList控件

2010-08-06 15:11:44

Flex界面控件

2010-07-27 13:53:15

Flex ComboB

2009-08-11 14:45:41

C# DataGrid

2010-07-30 13:52:17

Flex組件

2010-08-05 13:14:16

Flex布局

2010-08-09 15:52:28

2010-08-04 15:12:54

Flex開發

2010-07-30 09:56:02

Flex控件

2010-08-11 15:11:52

Flex組合框

2009-08-25 15:30:55

DataGrid We

2010-08-11 16:03:02

Flex DataGr
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91高清视频在线观看 | 免费av一区二区三区 | 亚洲在线 | 成人久久18免费网站 | 99久久久久 | 国产日韩欧美在线 | 欧美成人一区二区三区 | 日韩在线成人 | 男人阁久久 | 国产乱码精品一区二区三区中文 | 亚洲国产aⅴ成人精品无吗 亚洲精品久久久一区二区三区 | 亚洲精品福利视频 | 久久天堂网 | www精品| 国产精品中文字幕在线观看 | 亚洲午夜av | 欧美成人自拍视频 | 国产91久久久久久 | 欧美黄色一级毛片 | 免费毛片www com cn| 中文字幕av亚洲精品一部二部 | 成人av播放| 久久国产成人精品国产成人亚洲 | 日韩在线免费视频 | 国产免费让你躁在线视频 | h片在线免费观看 | 日韩综合在线 | 日韩福利| 日韩毛片在线免费观看 | 欧美五月婷婷 | 国产69精品久久久久777 | 黄色一级片视频 | 日本不卡一区二区三区在线观看 | 91网视频| 国产精品国产三级国产aⅴ浪潮 | 日韩一区二区三区精品 | 精品一区二区三区在线视频 | 国产精品国产成人国产三级 | 亚洲一区不卡在线 | 四虎影院在线播放 | 一区二区三区在线免费观看视频 |