首先是java的dao代码:
@Override
public List getMailList(Mail mail,final int currentIndex,final int pageSize) {
log.debug("get Mail List");
final String hql="FROM Mail as mail WHERE mail.touser='"+mail.getTouser()+"' order by mail.senddate desc";
try{
return getHibernateTemplate().executeFind(new HibernateCallback(){
@Override
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query=session.createQuery(hql);
query.setMaxResults(pageSize);
query.setFirstResult(currentIndex);
List l=query.list();
return l;
}
});
}catch(RuntimeException e){
log.error("get fail!");
throw e;
}
flex代码:
<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="group1_creationCompleteHandler(event)">
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.events.FlexEvent;
import mx.managers.PopUpManager;
import mx.rpc.events.ResultEvent;
import mx.rpc.remoting.RemoteObject;
import spark.events.TextOperationEvent;
[Bindable]
private var pageSize:int=new int();;
[Bindable]
private var resultCount:int=new int();;
[Bindable]
private var allowResults:int=5;
[Bindable]
private var currentPage:int=1;
[Bindable]
private var recMailXml:XML=<SENDMAIL label="全部"><THREEDAYS label="近三天邮件"></THREEDAYS><SEVENDAYS label="近一周邮件"></SEVENDAYS><THRITYDAYS label="近一个月邮件"></THRITYDAYS></SENDMAIL>;
[Bindable]
public static var imgUrl:String="images/png/128/mail_receive.png";
protected function curPageIndex_changeHandler(event:TextOperationEvent):void
{
// 跳转到指定页
var rePageTemp:int=int(curPageIndex.text);
if(rePageTemp!=currentPage){
if(rePageTemp>0 && rePageTemp<=pageSize){
var re:RemoteObject=new RemoteObject("mailService");
re.getMailList(index.loginObj.name,rePageTemp,allowResults);
re.addEventListener(ResultEvent.RESULT,function(resultEvent:ResultEvent):void{
mailListGrid.dataProvider=ArrayCollection(resultEvent.result);
});
currentPage=rePageTemp;
}else{
Alert.show("输入的页数不存在!");
}
}
}
protected function firstPage_clickHandler(event:MouseEvent):void
{
// 第一页
if(currentPage>1){
var re:RemoteObject=new RemoteObject("mailService");
re.getMailList(index.loginObj.name,1,allowResults);
re.addEventListener(ResultEvent.RESULT,function(resultEvent:ResultEvent):void{
mailListGrid.dataProvider=ArrayCollection(resultEvent.result);
});
currentPage=1;
}
}
protected function prePage_clickHandler(event:MouseEvent):void
{
// 上一页
if(currentPage>1){
var re:RemoteObject=new RemoteObject("mailService");
re.getMailList(index.loginObj.name,(currentPage-1),allowResults);
re.addEventListener(ResultEvent.RESULT,function(resultEvent:ResultEvent):void{
mailListGrid.dataProvider=ArrayCollection(resultEvent.result);
});
currentPage=currentPage-1;
}
}
protected function nextPage_clickHandler(event:MouseEvent):void
{
// 下一页
if(currentPage<pageSize){
var re:RemoteObject=new RemoteObject("mailService");
re.getMailList(index.loginObj.name,(currentPage+1),allowResults);
re.addEventListener(ResultEvent.RESULT,function(resultEvent:ResultEvent):void{
mailListGrid.dataProvider=ArrayCollection(resultEvent.result);
});
currentPage=currentPage+1;
}
}
protected function lastPage_clickHandler(event:MouseEvent):void
{
// 最后一页
if(currentPage<pageSize){
var r:RemoteObject
var re:RemoteObject=new RemoteObject("mailService");
re.getMailList(index.loginObj.name,pageSize,allowResults);
re.addEventListener(ResultEvent.RESULT,function(resultEvent:ResultEvent):void{
mailListGrid.dataProvider=ArrayCollection(resultEvent.result);
});
currentPage=pageSize;
}
}
protected function group1_creationCompleteHandler(event:FlexEvent):void
{
imgMailState.source=imgUrl;
}
protected function tree1_clickHandler(event:MouseEvent):void
{
setCurrentState("MailList");
var mailRemoteObj:RemoteObject=new RemoteObject("mailService");
mailRemoteObj.getMailList(index.loginObj.name,1,5);
mailRemoteObj.addEventListener(ResultEvent.RESULT,function(resultEvent:ResultEvent):void{
mailListGrid.dataProvider=ArrayCollection(resultEvent.result);
});
currentPage=1;
var re:RemoteObject=new RemoteObject("mailService");
re.getMailListCount(index.loginObj.name);
re.addEventListener(ResultEvent.RESULT,function(resultEvent2:ResultEvent):void{
resultCount=int(resultEvent2.result);
var count:int=(resultCount/allowResults)+1;
pageSize=count;
});
}
protected function mailListGrid_clickHandler(event:MouseEvent):void
{
var mailInf:mailInfo=new mailInfo();
mailInf.mailObject=event.currentTarget.selectedItem;
PopUpManager.addPopUp(mailInf,this,true);
PopUpManager.centerPopUp(mailInf);
var re:RemoteObject=new RemoteObject("mailService");
re.readMail(mailInf.mailObject.id);
}
]]>
</fx:Script>
<s:states>
<s:State name="State1"/>
<s:State name="MailList"/>
</s:states>
<fx:Declarations>
</fx:Declarations>
<s:HGroup width="98%" height="98%" verticalAlign="middle" textAlign="left" horizontalCenter="0" verticalCenter="0">
<mx:Tree height="95%" dataProvider="{recMailXml}" labelField="@label" width="180" borderVisible="false" click="tree1_clickHandler(event)"></mx:Tree>
<mx:VRule height="95%"/>
<s:Group width="100%" height="95%">
<s:VGroup horizontalAlign="right" includeIn="MailList">
<mx:DataGrid id="mailListGrid" width="450" verticalAlign="middle" textAlign="center" height="158" click="mailListGrid_clickHandler(event)">
<mx:columns>
<mx:DataGridColumn headerText="发送时间" dataField="senddate"/>
<mx:DataGridColumn headerText="发件人" dataField="sender"/>
<mx:DataGridColumn headerText="标题" dataField="title"/>
<mx:DataGridColumn headerText="状态" dataField="readState"/>
</mx:columns>
</mx:DataGrid>
<s:HGroup verticalAlign="middle">
<s:Label text="共"/>
<s:Label text="{resultCount}" color="#FC0303"/>
<s:Label text="条记录,当前第"/>
<s:Label text="{currentPage}" color="#FC0303"/>
<s:Label text="页,共"/>
<s:Label text="{pageSize}" color="#FC0303"/>
<s:Label text="页。跳转到第"/>
<s:TextInput id="curPageIndex" width="30" height="15" change="curPageIndex_changeHandler(event)" enabled="true" text="{currentPage}" paddingLeft="0" paddingTop="0" paddingBottom="0" textAlign="center" paddingRight="0"/>
<s:Label text="页。"/>
<mx:Image id="firstPage" source="images/png/16/arrow_stop_180.png" scaleContent="false" width="16" height="16" click="firstPage_clickHandler(event)" buttonMode="true"/>
<mx:Image id="prePage" source="images/png/16/arrow_skip_180.png" scaleContent="false" width="16" height="16" click="prePage_clickHandler(event)" buttonMode="true"/>
<mx:Image id="nextPage" source="images/png/16/arrow_skip.png" scaleContent="false" width="16" height="16" click="nextPage_clickHandler(event)" buttonMode="true"/>
<mx:Image id="lastPage" source="images/png/16/arrow_stop.png" width="16" height="16" click="lastPage_clickHandler(event)" buttonMode="true"/>
</s:HGroup>
</s:VGroup>
<mx:Image id="imgMailState" source="{imgUrl}" horizontalCenter="0" verticalCenter="0" width="128" height="128" includeIn="State1"/>
</s:Group>
</s:HGroup>
</s:Group>
- 大小: 23 KB
分享到:
相关推荐
实现Flex DataGrid的前台分页,首先需要确保数据源能够一次性加载所有数据。这可能意味着你需要有足够的内存来处理这些数据,否则可能会导致性能问题。在获取数据后,你可以使用DataGrid的`dataProvider`属性来绑定...
通过阅读博客文章,我们可以深入了解Flex DataGrid分页的实现细节,学习如何利用PagerBar.mxml或其他工具来优化我们的Flex应用。同时,也可以从中获取灵感,为自己的项目设计更高效、更易用的分页解决方案。
本篇文章将深入探讨“flex datagrid分页动态绑定数据源”的相关知识点。 首先,让我们理解Flex Datagrid的基本概念。Flex Datagrid是一个灵活的数据呈现控件,能够处理各种数据源,包括ArrayCollection、...
在描述中提到的“flex datagrid pagination”是指DataGrid控件的一个重要特性——分页功能。在处理大数据集时,分页是必不可少的,因为它能提高用户体验,避免一次性加载所有数据导致的性能问题。下面将详细讲解Flex...
这是我自己开发的一个dataGrid分页的控件,上传的资源是一个打成包的flex项目,这个控件在查询数据时是与后台进行实时交互的,表格的表头样式是重写皮肤类进行定义的,而隔行变色是通过css来实现的。其中最重要的...
这是我自己开发的一个dataGrid分页的控件,上传的资源是一个打成包的flex项目,这个控件在查询数据时是与后台进行实时交互的,表格的表头样式是重写皮肤类进行定义的,而隔行变色是通过css来实现的。其中最重要的...
本文将详细解析使用AS3.0在Flex中实现DataGrid分页的功能,帮助你深入理解这一技术。 首先,Flex是Adobe开发的一个开放源代码框架,用于构建富互联网应用程序(RIA)。它提供了丰富的组件库,包括DataGrid,这是一...
在本示例中,我们关注的是“flex datagrid分页”这一主题,它涉及到如何在DataGrid中实现数据的分页显示,以便用户可以有效地浏览大量数据。 分页是大型数据集管理中的关键功能,它允许用户一次只查看一部分数据,...
"flex的datagrid分页"这个主题,主要涉及如何在DataGrid中实现数据的分页显示,以便用户能够高效地浏览大量数据,而不会因为一次性加载所有数据导致性能下降。下面将详细介绍DataGrid分页的相关知识点: 1. **数据...
Flex中的DataGrid分页通常涉及到以下几个关键变量: - `pageRecordes`:每页显示的记录数。 - `totalPages`:总页数。 - `totalRows`:数据总条数。 - `currentPage`:当前页码。 - `pageStartRow`:当前页起始行...
Flex Datagrid提供了许多高级特性,如排序、过滤、分页等,可以通过自定义列样式、数据提供程序和事件处理来实现。此外,还可以通过使用ItemEditor实现单元格编辑,或者通过使用AdvancedDataGrid组件来处理更复杂的...
总之,使用Flex开发DataGrid分页控件,无论是客户端还是服务端,都需要理解数据加载、分页逻辑和用户交互的基本原理。通过合理的组件布局、事件处理和数据绑定,可以实现高效、易用的分页功能。无论使用哪种编程语言...
DataGrid支持排序、分页、筛选等功能,是UI设计中处理大量数据的首选组件。 2. **嵌套复选框(Checkbox)**: 在DataGrid的每个单元格内嵌入复选框,可以为用户提供多选操作的界面。通过监听复选框的事件,可以...
通过分析这些文件和目录,我们可以深入研究Flex编程,了解如何自定义DataGrid分页,以及如何在Flex项目中组织和管理源代码。同时,这也是一个学习Flex开发的好实例,可以从中学习到Flex的组件使用、数据绑定、事件...
综上所述,Flex开发Flex dataGrid分页技术涵盖了数据管理、用户交互、性能优化等多个方面,这些知识点对于构建功能丰富的Flex应用至关重要。通过理解并运用这些技术,开发者可以创建出高效、易于使用的数据展示界面...
在开发基于Adobe Flex的应用程序时,我们经常遇到需要将数据展示在用户友好的方式中,例如使用DataGrid组件。然而,有时用户希望将这些数据显示在更传统的格式中,如Microsoft Excel电子表格。本教程将详细介绍如何...
在Flex开发中,数据展示是常见且...同时,`DataGrid`还提供了丰富的自定义选项,如列样式、排序、分页等,可以进一步优化用户体验。在实际项目中,开发者还可以结合服务器端的XML数据流服务,实现实时更新的数据列表。
综上所述,了解和掌握Flex DataGrid的使用,包括数据绑定、CRUD操作和分页,对于开发富互联网应用来说是非常重要的。通过实践和参考相关教程,如提供的博文链接,开发者可以更好地理解和实现这些功能。
本篇文章将深入探讨如何在Flex中创建一个既可编辑又具有分页功能的DataGrid。 首先,我们需要导入必要的库和类。在Flex项目中,`mx.controls.DataGrid` 是核心的DataGrid类,而`mx.controls.PagingControl` 和 `mx....