Adobe Flex迷你教程 — DataGrid,搜索数据,搜索结果多页显示

Posted by Kevin Luo at 2 January 2009

Category: Flex 迷你教程

Tags:

有朋友问到这个问题,这个问题主要涉及到dataProvider的操作,比较有针对性,所以写做教程。

这篇教程的核心是,Grid如果数据并不是操作Grid,而是操作它的dataProvider, Grid只是显示数据的载体。

Demo操作:

1. 开始显示从A到Z的国家列表。可以前后翻页,每页显示10条
2. 从search框中输入搜索信息,grid将显示含有搜索字母的所有城市.
3. 同样可以对search结果进行翻页。

主要方法:

调用这个方法根据currentPage和searchedData设置Grid显示当前页

private function setCurrentPage():void{
currentPageData = new XMLListCollection(); //清空数据
var startIndex:int = currentPage * pageSize – pageSize; //开始位置
var endIndex:int = currentPage * pageSize;//结束位置
if(endIndex >= searchedData.length){ //如果结束位置大于search data的长度,结束位置为search data的长度
endIndex = searchedData.length;
this.lastPage = this.currentPage;
}
for(var i:int = startIndex; i< style=”color: rgb(0, 0, 204);”>/设置当前页数据
currentPageData.addItem(searchedData[i]);
}
}

调用此方法查询从 allData中查询数据,并显示第一页

private function doSearch():void{
this.searchedData = new XMLListCollection() //清空数据
for each(var item:XML in allData){ //从allData中搜索数据,将搜索到的数据添加到searchData
var value:String =item.@name.toString()
if(value.indexOf(searchValue.text) != -1){
this.searchedData.addItem(item);
}
}
this.currentPage = 1; //显示第一页
this.setCurrentPage();
}

grid3

源文件下载

DataGridPageDemo (387)

2 Comments

  1. bombw says

    源文件地址失效

    Reply

    Kevin Luo Reply:

    谢谢提醒,已经修复了

    Reply

Leave a Reply

Leave a Reply
  • (required)
  • (required) (will not be published)