自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Flex DataGrid組件分頁方法詳盡解讀

開發(fā) 后端
本文向大家介紹一下Flex DataGrid組件的分頁與排序,基本思路是,把全部數(shù)據(jù)一次性讀到一個數(shù)據(jù)集中,然后,再與Flex DataGrid組件關(guān)聯(lián),分頁的讀取顯示。

在學(xué)習(xí)Flex的過程中,你可能會遇到Flex DataGrid組件的用法問題,這里和大家分享一下Flex DataGrid組件的分頁,在很多語言中,分頁技術(shù)都是很常見的。基本思路是先從數(shù)據(jù)庫中讀取一頁的數(shù)據(jù),在Flex DataGrid組件中顯示出來,然后再讀取,再顯示。

Flex DataGrid組件的分頁與排序

當(dāng)Flex DataGrid組件中的數(shù)據(jù)顯示很多行的時候,使用者需要不停地下拉滾動條。這對于用戶的體驗(yàn)極為不便,分頁顯示數(shù)據(jù)的方式就可以很好地解決這個問題。在應(yīng)用軟件開發(fā)中,分頁也是常用的操作。排序的作用是為了用戶可以更好地按照自己的方式排列數(shù)據(jù),更加方便地閱讀數(shù)據(jù)信息。

Flex DataGrid組件的分頁

在很多語言中,分頁技術(shù)都是很常見的。每種技術(shù)都有自己的優(yōu)勢和特點(diǎn),但是基本思路都差不多?;舅悸肥牵讶繑?shù)據(jù)一次性讀到一個數(shù)據(jù)集中,然后,再與Flex DataGrid組件關(guān)聯(lián),分頁的讀取顯示。另外一種思路是,先從數(shù)據(jù)庫中讀取一頁的數(shù)據(jù),在Flex DataGrid組件中顯示出來,然后再讀取,再顯示。

下面,用***種思路設(shè)計一個分頁的程序,數(shù)據(jù)集采用數(shù)組的形式,利用數(shù)組的slice()方法,讀取一部分?jǐn)?shù)據(jù),然后分頁顯示。步驟如下。

◆步驟一:創(chuàng)建一個ActionScript3.0文件,命名為DataGridPageExample,類名為DataGridPage-Example,繼承自Sprite類,導(dǎo)入用到的類庫。代碼如下:
 

  1. package  
  2. {  
  3. importfl.controls.Button;  
  4. importfl.controls.DataGrid;  
  5. importfl.controls.ScrollPolicy;  
  6. importfl.data.DataProvider;  
  7. importflash.display.Sprite;  
  8. importflash.events.MouseEvent;  
  9.  
  10. publicclassDataGridPageExampleextendsSprite  
  11. {  
  12.  
  13. }  
  14. }  
  15.  

 ◆步驟二:創(chuàng)建構(gòu)造函數(shù)。代碼如下所示:

  1. /************************  
  2. *構(gòu)造函數(shù)  
  3. ***********************/  
  4. publicfunctionDataGridPageExample()  
  5. {  
  6. CreateDataModel();  
  7. CreateDataGrid();  
  8. CreatePageButton();  
  9. }  
  10.  

 #p#◆步驟三:創(chuàng)建數(shù)據(jù)模型。實(shí)際開發(fā)中,是從外部數(shù)據(jù)庫或者文件讀取數(shù)據(jù)的,這里只是模擬數(shù)據(jù)源,便于講解。在這里,插入了9條數(shù)據(jù),然后傳遞到數(shù)組中,代碼如下所示:
 

  1. privatevardp:DataProvider;  
  2. privatevararray:Array;  
  3. /************************  
  4. *創(chuàng)建數(shù)據(jù)模型  
  5. ***********************/  
  6. privatefunctionCreateDataModel():void  
  7. {  
  8. //數(shù)據(jù)模型  
  9. dp=newDataProvider();  
  10.  
  11. //插入9條數(shù)據(jù)  
  12. dp.addItem({Name:"Tom",Phone:23579086,QQ:77788899,Software:"Flash"});  
  13. dp.addItem({Name:"Kelly",Phone:33579080,QQ:56788823,Software:"Flex"});  
  14. dp.addItem({Name:"Jim",Phone:83579085,QQ:56788882,Software:"Java"});  
  15. dp.addItem({Name:"Sam",Phone:73579084,QQ:78988811,Software:"Dreamweaver"});  
  16. dp.addItem({Name:"Kaiven",Phone:33576681,QQ:32188897,Software:"Photoshop"});  
  17.  
  18. dp.addItem({Name:"Gray",Phone:23229086,QQ:12388900,Software:"Fireworks"});  
  19. dp.addItem({Name:"Luar",Phone:23579087,QQ:24681899,Software:"DAEMONTools"});  
  20. dp.addItem({Name:"Kite",Phone:85579082,QQ:68080894,Software:"FlashDevelop"});  
  21. dp.addItem({Name:"Polar",Phone:32579086,QQ:21586899,Software:"BeyondCompare"});  
  22.  
  23. array=dp.toArray();  
  24. }  
  25.  

 ◆步驟四:創(chuàng)建Flex DataGrid組件,封裝在函數(shù)CreateDataGrid中,代碼如下所示:
 

  1. privatevardg:DataGrid;  
  2. //數(shù)據(jù)副本  
  3. privatevararray_page:Array;  
  4. /************************  
  5. *創(chuàng)建Flex DataGrid組件  
  6. ***********************/  
  7. privatefunctionCreateDataGrid():void  
  8. {  
  9. //初始化Flex DataGrid組件,并實(shí)例化  
  10. dg=newDataGrid();  
  11.  
  12. //設(shè)置位置  
  13. dg.move(20,20);  
  14. //設(shè)置寬和高  
  15. dg.setSize(350,125);  
  16. dg.verticalScrollPolicy=ScrollPolicy.AUTO;  
  17. //定義列的標(biāo)題  
  18. dg.columns=["Name","Phone","QQ","Software"];  
  19.  
  20. //初始化數(shù)據(jù)  
  21. arrayarray_page=array.slice(0,5);  
  22. //綁定Flex DataGrid組件  
  23. BingDataGrid(array_page);  
  24.  
  25. addChild(dg);  
  26. }  
  27.  

 #p#◆步驟五:綁定數(shù)據(jù)源,先是移除Flex DataGrid組件中的所有數(shù)據(jù),然后遍歷參數(shù)數(shù)組中的數(shù)據(jù),增加到Flex DataGrid組件中。***封裝在函數(shù)BingDataGrid中,便于分頁時重復(fù)調(diào)用。代碼如下所示:
 

  1. /************************  
  2. *綁定數(shù)據(jù)源  
  3. ***********************/  
  4. privatefunctionBingDataGrid(array:Array):void  
  5. {  
  6. //綁定數(shù)據(jù)源  
  7. dg.removeAll();  
  8. vari:uint=0;  
  9. for(i=0;i<array.length;i++)  
  10. {  
  11. dg.addItem(array[i]);  
  12. }  
  13. }  

 ◆步驟六:創(chuàng)建“上一頁”和”下一頁“按鈕,封裝在函數(shù)CreatePageButton中,代碼如下:
 

  1. /************************  
  2. *創(chuàng)建“上一頁”和”下一頁“按鈕  
  3. ***********************/  
  4. privatefunctionCreatePageButton():void  
  5. {  
  6. varbtnPre:Button=newButton();  
  7. varbtnNext:Button=newButton();  
  8.  
  9. btnPre.move(30,170);  
  10. btnNext.move(240,170);  
  11.  
  12. btnPre.label="上一頁";  
  13. btnNext.label="下一頁";  
  14.  
  15. btnPre.addEventListener(MouseEvent.CLICK,btnPreClick);  
  16. btnNext.addEventListener(MouseEvent.CLICK,btnNextClick);  
  17.  
  18. addChild(btnPre);  
  19. addChild(btnNext);  
  20. }  
  21.  

 #p#◆步驟七:創(chuàng)建“上一頁”按鈕的單擊事件的函數(shù),讀取前5條數(shù)據(jù),命名為btnPreClick,代碼如下:
 

  1. /************************  
  2. *“上一頁”按鈕的單擊事件  
  3. ***********************/  
  4. publicfunctionbtnPreClick(e:MouseEvent)  
  5. {  
  6. arrayarray_page=array.slice(0,5);  
  7. BingDataGrid(array_page);  
  8. }  

 ◆步驟八:創(chuàng)建“下一頁”按鈕的單擊事件的函數(shù),讀取后面的4條數(shù)據(jù),命名為btnNextClick,代碼如下:
 

  1. /************************  
  2. *“下一頁”按鈕的單擊事件  
  3. ***********************/  
  4. publicfunctionbtnNextClick(e:MouseEvent)  
  5. {  
  6. arrayarray_page=array.slice(5,10);  
  7. BingDataGrid(array_page);  
  8. }  

 ◆步驟九:把三個創(chuàng)建組件的函數(shù)增加到構(gòu)造函數(shù)中,代碼如下所示:
 

  1. /************************  
  2. *構(gòu)造函數(shù)  
  3. ***********************/  
  4. publicfunctionDataGridPageExample()  
  5. {  
  6. CreateDataModel();  
  7. CreateDataGrid();  
  8. CreatePageButton();  
  9. }  

【編輯推薦】

  1. 探秘Flex與JavaScript交互
  2. 常用FlexBuilder快捷鍵用法指導(dǎo)
  3. Flex框架Riawave的定制應(yīng)用
  4. 技術(shù)前沿 Flex2.0 從零開始實(shí)現(xiàn)文件上傳
  5. FlexBuilder開發(fā)方法及特點(diǎn)解析 

 

責(zé)任編輯:佚名 來源: flashas.net)
相關(guān)推薦

2010-08-06 16:07:55

Flex通信

2010-08-03 10:59:14

Flex代碼規(guī)范

2010-08-12 09:19:31

Flex彈出窗口

2010-08-11 16:03:02

Flex DataGr

2010-08-06 11:04:06

Flex模塊化

2010-08-06 14:13:31

FlexDataGrid分頁控

2010-07-27 13:53:15

Flex ComboB

2010-08-04 10:04:52

Flex1.5環(huán)境配置

2010-07-28 09:29:36

Flex DataGr

2010-07-19 16:25:06

Perl數(shù)組

2010-08-11 16:30:49

Flex DataGr

2010-06-22 10:01:40

Symbian開發(fā)

2010-08-11 15:35:47

Flex DataGr

2010-08-11 15:51:45

Flex DataGr

2009-08-21 15:27:11

C# DataGrid

2010-08-17 09:31:08

DIV布局

2010-09-13 17:30:07

CSS優(yōu)先級

2009-07-28 09:51:11

Flex數(shù)據(jù)分頁查詢

2010-08-11 15:11:52

Flex組合框

2010-07-19 14:45:07

Perl進(jìn)程控制函數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號