转自:http://hi.baidu.com/nirvana140107/blog/item/8d8222008e17c80f1d958322.html
关于分页技术可以说最常用的技术:
在java的经典的分页技术中必须的参数有四个无论哪个分页技术都是必须的:
当前页数:pageNow
页面记录的数:pageSize
页面总记录数:totalResults
分页数据信息:Collection (当前页面显示的集合数据是总数据的一部分)
各种关系:
有四舍五入的数学算法可以知道任何一个浮点数加上0.5 取其整数部分可以得到他的四舍五入的数据:
同理如下
总的页面数量: pageTotal=(totalResults+pageSize-1)/pageSize;
当前的页面开始记录: startResult=(pageNow-1)*pageSize;
当前的页面结束记录: endResult=pageNow*pageSize;
开始记录和结束记录查询分页显示当前数据,页面总数数据库查询
Y(^o^)Y,开始分析C/S分页技术
大前提必须记住哦,O(∩_∩)O哈哈哈~
数据量不是很大的时候采用,但数据量相当大的时候最好采用Java经典分页技术,提高客户的相应效率。
由以上参数可以计算的信息如下:
在CS开发中常用分页中使用分页技术:
当前页数:pageNow
页面记录的数:pageSize
总的数据信息:Collection (总数据)
总的记录数:totalResults 从总数据量中得到即可
总的页面数量: pageTotal=(totalResults+pageSize-1)/pageSize;
当前的页面开始记录: startResult=(pageNow-1)*pageSize;
当前的页面结束记录: endResult=pageNow*pageSize;
已知当前页面开始记录和结束记录数获取当前页面的显示的数据:(忽略)
Flex的分页代码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal" verticalAlign="middle" horizontalAlign="center" creationComplete="initApp()">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
//每页的记录数
public var pageSize:uint=8;
//总的页数
public var totalPages:uint=0;
//总的记录数量
public var totalRows:uint=0;
//当前页的记录数
public var pageNow:uint=1;
//开始记录的行
public var pageStartRow:uint=1;
//结束记录的行
public var pageEndRow:uint=1;
//用于初始化的方法
public function initApp():void
{
txt.text="Page "+pageNow;
//计算总的记录数
totalRows=initDG.length;
if(initDG.length>pageSize)
{
//从总的记录中获取部分记录的方法同时并切换数据的
dg.dataProvider=initDG.slice(0,pageSize);
pPage.enabled=false;
}
//记录总的记录数量
totalPages=Math.floor((totalRows+pageSize-1)/pageSize);
if(totalRows<=pageSize)
{
this.pageStartRow=1;
this.pageEndRow=totalRows;
}else{
this.pageStartRow=1;
this.pageEndRow=pageSize;
}
if(totalPages==1)
{
pPage.enabled=false;
nPage.enabled=false;
}
}
//点击上一页的处理
public function showPreviousPage():void
{
pageNow=pageNow-1;
txt.text="page "+pageNow;
if(pageNow != 1)
{
pageStartRow=(pageNow-1)*pageSize+1;
pageEndRow=pageNow*pageSize;
}else{
pageEndRow=pageSize;
pageStartRow=1;
pPage.enabled=false;
}
dg.dataProvider=initDG.slice(pageStartRow-1,pageEndRow);
}
public function showNextPage():void{
pageNow = pageNow + 1;
txt.text = "Page " + pageNow;
if(pageNow == totalPages){
pageEndRow = totalRows;
pageStartRow =totalRows-pageSize;
nPage.enabled = false;
pPage.enabled = false;
}else{
pageStartRow = (pageNow - 1) * pageSize + 1;
pageEndRow = pageNow * pageSize;
nPage.enabled = true;
pPage.enabled = true;
}
dg.dataProvider = initDG.slice((pageNow - 1) * pageSize,pageEndRow);
}
//首页调用的方法
public function showFirstPage():void{
dg.dataProvider = initDG.slice(0,pageSize);
pPage.enabled = false;
nPage.enabled = true;
txt.text = "Page " + 1;
pageNow = 1;
}
//最后一页调用的方法
public function showLastPage():void{
dg.dataProvider = initDG.slice((totalPages - 1) * pageSize,totalRows);
pPage.enabled = true;
nPage.enabled = false;
txt.text = "Page " + totalPages;
pageNow = totalPages;
}
]]>
</mx:Script>
<mx:Panel title="DataGrid分页应用" height="287" width="500">
<mx:DataGrid id="dg" height="100%" width="100%">
<mx:dataProvider >
<mx:Array id="initDG">
<mx:Object PLAYER="Rafer Alston" POS="G" FROM="Fresno State"/>
<mx:Object PLAYER="Luther Head" POS="G" FROM="lllinois"/>
<mx:Object PLAYER="Tracy McGrady" POS="F-G" FROM="Mount Zion Christian Acad. HS (NC)"/>
<mx:Object PLAYER="Dikembe Mutombo" POS="C" FROM="Georgetown"/>
<mx:Object PLAYER="Stromile Swift" POS="F" FROM="Louisiana State"/>
<mx:Object PLAYER="David Wesley" POS="G" FROM="Baylor"/>
<mx:Object PLAYER="Yao Ming" POS="C" FROM="China"/>
<mx:Object PLAYER="Kobe Bryant" POS="G" FROM="Lower Merion HS (PA)"/>
<mx:Object PLAYER="Kwame Brown" POS="F-C" FROM="Glynn Academy HS (GA)"/>
<mx:Object PLAYER="Lamar Odom" POS="F" FROM="Rhode Island"/>
<mx:Object PLAYER="Andrew Bynum" POS="C" FROM="St. Joseph HS (NJ)"/>
<mx:Object PLAYER="Brian Cook" POS="F" FROM="Illinois"/>
<mx:Object PLAYER="Devean George" POS="F" FROM="Augsburg"/>
<mx:Object PLAYER="Devin Green" POS="G" FROM="Hampton"/>
<mx:Object PLAYER="Aaron McKie" POS="F" FROM="Temple"/>
<mx:Object PLAYER="Chris Mihm" POS="C" FROM="Texas"/>
<mx:Object PLAYER="Smush Parker" POS="G" FROM="Fordham"/>
<mx:Object PLAYER="Ronny Turiaf" POS="F" FROM="Gonzaga"/>
<mx:Object PLAYER="Sasha Vujacic" POS="F" FROM="Slovenia"/>
<mx:Object PLAYER="Von Wafer" POS="F" FROM="Florida State"/>
<mx:Object PLAYER="Luke Walton" POS="F" FROM="Arizona"/>
<mx:Object PLAYER="Lamar Odom" POS="F" FROM="Rhode Island"/>
<mx:Object PLAYER="Jim Jackson" POS="F-G" FROM="Ohio State"/>
</mx:Array>
</mx:dataProvider>
<mx:columns>
<mx:DataGridColumn headerText="歌 手" dataField="PLAYER" textAlign="center"/>
<mx:DataGridColumn headerText="方 式" dataField="POS" textAlign="center"/>
<mx:DataGridColumn headerText="国 家" dataField="FROM" textAlign="center"/>
</mx:columns>
</mx:DataGrid>
<mx:Spacer />
<mx:HBox width="391">
<mx:Spacer/>
<mx:LinkBar borderStyle="solid" color="#000000" backgroundColor="#CCFFFF" id="fPage" label="firstPage" itemClick="showFirstPage()">
<mx:dataProvider>
<mx:Array>
<mx:String>firstPage</mx:String>
</mx:Array>
</mx:dataProvider>
</mx:LinkBar>
<mx:LinkBar borderStyle="solid" color="#000000" backgroundColor="#CCFFFF" id="pPage" label="prevPage" itemClick="showPreviousPage()">
<mx:dataProvider>
<mx:Array>
<mx:String>prePage</mx:String>
</mx:Array>
</mx:dataProvider>
</mx:LinkBar>
<mx:Text id="txt" width="52"/>
<mx:LinkBar borderStyle="solid" color="#000000" backgroundColor="#CCFFFF" id="nPage" label="nextPage" itemClick="showNextPage()">
<mx:dataProvider>
<mx:Array>
<mx:String>nextPage</mx:String>
</mx:Array>
</mx:dataProvider>
</mx:LinkBar>
<mx:LinkBar borderStyle="solid" color="#000000" backgroundColor="#CCFFFF" id="lPage" label="lastPage" itemClick="showLastPage()">
<mx:dataProvider>
<mx:Array>
<mx:String>lastPage</mx:String>
</mx:Array>
</mx:dataProvider>
</mx:LinkBar>
</mx:HBox>
<mx:Spacer />
</mx:Panel>
</mx:Panel>
分享到:
相关推荐
Flex DataGrid是一款强大的数据展示组件,常用于Adobe Flex或Flash Builder等开发环境中。它能够高效地展示大量数据,并提供丰富的用户交互功能。在本场景中,我们关注的是“前台分页”这一技术。 前台分页是指在...
本文将详细解析使用AS3.0在Flex中实现DataGrid分页的功能,帮助你深入理解这一技术。 首先,Flex是Adobe开发的一个开放源代码框架,用于构建富互联网应用程序(RIA)。它提供了丰富的组件库,包括DataGrid,这是一...
在Flex开发中,`Datagrid`组件是一种常用的展示数据列表的控件,而分页和数据高亮显示是提升用户体验的重要功能。本篇主要探讨如何在Flex的`Datagrid`中实现分页定位和高亮显示。 首先,分页定位涉及的主要任务是...
"flex的datagrid分页"这个主题,主要涉及如何在DataGrid中实现数据的分页显示,以便用户能够高效地浏览大量数据,而不会因为一次性加载所有数据导致性能下降。下面将详细介绍DataGrid分页的相关知识点: 1. **数据...
通过阅读博客文章,我们可以深入了解Flex DataGrid分页的实现细节,学习如何利用PagerBar.mxml或其他工具来优化我们的Flex应用。同时,也可以从中获取灵感,为自己的项目设计更高效、更易用的分页解决方案。
总之,使用Flex开发DataGrid分页控件,无论是客户端还是服务端,都需要理解数据加载、分页逻辑和用户交互的基本原理。通过合理的组件布局、事件处理和数据绑定,可以实现高效、易用的分页功能。无论使用哪种编程语言...
总之,Flex3中的DataGrid分页是一个涉及数据管理、用户交互和事件处理的过程。通过合理地控制数据加载和更新,我们可以提高应用程序的性能,提供更好的用户体验。学习并掌握这一技术,对于开发大型Flex3应用是至关...
总的来说,“flex datagrid分页动态绑定数据源”是一个涉及到前端UI组件与后端数据交互的重要技术点。理解并掌握这些知识,有助于开发者创建高效、响应式的数据展示应用。在实际项目中,应根据具体需求选择合适的...
Flex DataGrid是一款基于Adobe Flex技术的数据展示控件,它允许开发者在Web应用中展示大量数据并进行高效管理。在描述中提到的“flex datagrid pagination”是指DataGrid控件的一个重要特性——分页功能。在处理大...
综上所述,Flex开发Flex dataGrid分页技术涵盖了数据管理、用户交互、性能优化等多个方面,这些知识点对于构建功能丰富的Flex应用至关重要。通过理解并运用这些技术,开发者可以创建出高效、易于使用的数据展示界面...
这是我自己开发的一个dataGrid分页的控件,上传的资源是一个打成包的flex项目,这个控件在查询数据时是与后台进行实时交互的,表格的表头样式是重写皮肤类进行定义的,而隔行变色是通过css来实现的。其中最重要的...
Flex中的DataGrid分页通常涉及到以下几个关键变量: - `pageRecordes`:每页显示的记录数。 - `totalPages`:总页数。 - `totalRows`:数据总条数。 - `currentPage`:当前页码。 - `pageStartRow`:当前页起始行...
在本示例中,我们关注的是“flex datagrid分页”这一主题,它涉及到如何在DataGrid中实现数据的分页显示,以便用户可以有效地浏览大量数据。 分页是大型数据集管理中的关键功能,它允许用户一次只查看一部分数据,...
综上所述,"flex 三状态多选 自动分页DataGrid"是一个包含多个技术点的专题,涵盖了数据展示、用户交互、性能优化等多个方面。开发者需要对Flex的组件体系、数据模型、事件处理以及UI设计有深入理解,才能有效地实现...
这是我自己开发的一个dataGrid分页的控件,上传的资源是一个打成包的flex项目,这个控件在查询数据时是与后台进行实时交互的,表格的表头样式是重写皮肤类进行定义的,而隔行变色是通过css来实现的。其中最重要的...
本篇文章将深入探讨如何在Flex中创建一个既可编辑又具有分页功能的DataGrid。 首先,我们需要导入必要的库和类。在Flex项目中,`mx.controls.DataGrid` 是核心的DataGrid类,而`mx.controls.PagingControl` 和 `mx....
1. DataGrid组件简介:DataGrid是Flex中一个功能强大的表格控件,可以显示多列数据,并支持排序、选择、分页等操作。它适用于展示结构化的数据集合,如数据库查询结果或者XML数据。 2. 使用步骤: - 创建DataGrid...
Flex中的DataGrid可以通过使用PagingModule或自己实现分页逻辑来实现这一功能。PagingModule通常包含了向前、向后、跳转到指定页以及显示当前页信息等功能。开发者需要定义每页显示的数据量,并根据用户的操作动态...
Flex Datagrid 是Adobe Flex框架中用于展示数据集的组件,它允许开发者以表格形式展示数据,并提供多种交互功能。在Flex应用中,Datagrid经常被用于处理和展示大量的结构化数据。在标题“Flex Datagrid checkbox实现...