`
g21121
  • 浏览: 694598 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

自己造的flex的datagrid分页

阅读更多
首先是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 前台 分页

    实现Flex DataGrid的前台分页,首先需要确保数据源能够一次性加载所有数据。这可能意味着你需要有足够的内存来处理这些数据,否则可能会导致性能问题。在获取数据后,你可以使用DataGrid的`dataProvider`属性来绑定...

    Flex DataGrid 分页

    通过阅读博客文章,我们可以深入了解Flex DataGrid分页的实现细节,学习如何利用PagerBar.mxml或其他工具来优化我们的Flex应用。同时,也可以从中获取灵感,为自己的项目设计更高效、更易用的分页解决方案。

    flex datagrid分页 动态绑定数据源

    本篇文章将深入探讨“flex datagrid分页动态绑定数据源”的相关知识点。 首先,让我们理解Flex Datagrid的基本概念。Flex Datagrid是一个灵活的数据呈现控件,能够处理各种数据源,包括ArrayCollection、...

    flex datagrid 分页控件源码

    在描述中提到的“flex datagrid pagination”是指DataGrid控件的一个重要特性——分页功能。在处理大数据集时,分页是必不可少的,因为它能提高用户体验,避免一次性加载所有数据导致的性能问题。下面将详细讲解Flex...

    flex dataGrid 分页控件

    这是我自己开发的一个dataGrid分页的控件,上传的资源是一个打成包的flex项目,这个控件在查询数据时是与后台进行实时交互的,表格的表头样式是重写皮肤类进行定义的,而隔行变色是通过css来实现的。其中最重要的...

    flex dataGrid分页 皮肤 隔行变色 实时交互

    这是我自己开发的一个dataGrid分页的控件,上传的资源是一个打成包的flex项目,这个控件在查询数据时是与后台进行实时交互的,表格的表头样式是重写皮肤类进行定义的,而隔行变色是通过css来实现的。其中最重要的...

    Flex中DataGrid分页源码

    本文将详细解析使用AS3.0在Flex中实现DataGrid分页的功能,帮助你深入理解这一技术。 首先,Flex是Adobe开发的一个开放源代码框架,用于构建富互联网应用程序(RIA)。它提供了丰富的组件库,包括DataGrid,这是一...

    flex datagrid分页

    在本示例中,我们关注的是“flex datagrid分页”这一主题,它涉及到如何在DataGrid中实现数据的分页显示,以便用户可以有效地浏览大量数据。 分页是大型数据集管理中的关键功能,它允许用户一次只查看一部分数据,...

    flex 的datagrid分页

    "flex的datagrid分页"这个主题,主要涉及如何在DataGrid中实现数据的分页显示,以便用户能够高效地浏览大量数据,而不会因为一次性加载所有数据导致性能下降。下面将详细介绍DataGrid分页的相关知识点: 1. **数据...

    flex datagrid 分页

    Flex中的DataGrid分页通常涉及到以下几个关键变量: - `pageRecordes`:每页显示的记录数。 - `totalPages`:总页数。 - `totalRows`:数据总条数。 - `currentPage`:当前页码。 - `pageStartRow`:当前页起始行...

    Flex Datagrid checkbox实现

    Flex Datagrid提供了许多高级特性,如排序、过滤、分页等,可以通过自定义列样式、数据提供程序和事件处理来实现。此外,还可以通过使用ItemEditor实现单元格编辑,或者通过使用AdvancedDataGrid组件来处理更复杂的...

    使用Flex开发DataGrid分页控件应用支持客户端及服务端

    总之,使用Flex开发DataGrid分页控件,无论是客户端还是服务端,都需要理解数据加载、分页逻辑和用户交互的基本原理。通过合理的组件布局、事件处理和数据绑定,可以实现高效、易用的分页功能。无论使用哪种编程语言...

    flex datagrid 嵌套checkbox实现全选

    DataGrid支持排序、分页、筛选等功能,是UI设计中处理大量数据的首选组件。 2. **嵌套复选框(Checkbox)**: 在DataGrid的每个单元格内嵌入复选框,可以为用户提供多选操作的界面。通过监听复选框的事件,可以...

    自己写的分页 flex datagrid 及一些其他东西 flexbuilder 项目源文件

    通过分析这些文件和目录,我们可以深入研究Flex编程,了解如何自定义DataGrid分页,以及如何在Flex项目中组织和管理源代码。同时,这也是一个学习Flex开发的好实例,可以从中学习到Flex的组件使用、数据绑定、事件...

    Flex分页技术

    综上所述,Flex开发Flex dataGrid分页技术涵盖了数据管理、用户交互、性能优化等多个方面,这些知识点对于构建功能丰富的Flex应用至关重要。通过理解并运用这些技术,开发者可以创建出高效、易于使用的数据展示界面...

    将Flex DataGrid数据导出到Excel中

    在开发基于Adobe Flex的应用程序时,我们经常遇到需要将数据展示在用户友好的方式中,例如使用DataGrid组件。然而,有时用户希望将这些数据显示在更传统的格式中,如Microsoft Excel电子表格。本教程将详细介绍如何...

    flex DataGrid xml 动态数据列表实例

    在Flex开发中,数据展示是常见且...同时,`DataGrid`还提供了丰富的自定义选项,如列样式、排序、分页等,可以进一步优化用户体验。在实际项目中,开发者还可以结合服务器端的XML数据流服务,实现实时更新的数据列表。

    flex基于datagrid控件的增删改查及分页实现

    综上所述,了解和掌握Flex DataGrid的使用,包括数据绑定、CRUD操作和分页,对于开发富互联网应用来说是非常重要的。通过实践和参考相关教程,如提供的博文链接,开发者可以更好地理解和实现这些功能。

    Flex创建可编辑以及分页的DataGrid

    本篇文章将深入探讨如何在Flex中创建一个既可编辑又具有分页功能的DataGrid。 首先,我们需要导入必要的库和类。在Flex项目中,`mx.controls.DataGrid` 是核心的DataGrid类,而`mx.controls.PagingControl` 和 `mx....

Global site tag (gtag.js) - Google Analytics