有朋友问到这个问题,这个问题主要涉及到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();
}
源文件下载
0 评论:
发表评论