- 浏览: 265444 次
- 性别:
- 来自: 香港
文章分类
最新评论
-
xinglianxlxl:
对我有用,谢谢
Java Axis-1.4 调用 .net webserice(手动下载证书和程序自动装载证书)) -
July01:
推荐用StratoIO打印控件,支持网页、URL、图片、PD、 ...
利用Applet进行Web打印 -
njitjiang:
完美,正在想这个问题怎么处理呢,多谢。
JasperReport 根据内容动态调整报表行高 -
luoyonghui55:
你这个要是能再写一些注释说明就更好了。
oracle 利用 lead 、lag 查询已有记录的下一条、上一条记录 -
guang.027:
很不错,不错,试试...
PKIX path building failed 的问题
网上看了一下有关flex DataGrid 自定义分页控件的应用,大部分是对客户端现成的数据进行分页,如果结合数据库来显示的话,数据量少,其实不必要分页,利用DataGrid的下拉滚动条足够,如果数据量非常大,又不大可能把所有的数据传到客户端,再对这些数据分页。只能是传到客户端的数据就只有一页的数据。下面示意如何用blaseds和flex来实现分页。(部分代码从网上拿来 )
1.自定义分页事件
package com.yonghong.controller.events
{
import flash.events.Event;
public class PageChangeEvent extends flash.events.Event
{
public function PageChangeEvent(pageindex:int,pagesize:int)
{
super("PageChange");
PageIndex= pageindex;
PageSize =pagesize;
}
public var PageIndex:int=0;
public var PageSize:int=0;
}
}
2.自定义分页栏
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="466" height="40">
<mx:Metadata>
[Event(name="PageChange", type="com.yonghong.controller.events.PageChangeEvent",bubbles="true",cancelable="true")]
</mx:Metadata>
<mx:Button click="method_le()" id="c_le" enabled="false" x="10" y="10" fontFamily="Georgia" width="24" height="24" minWidth="24" minHeight="24">
<mx:icon>@Embed('first.png')</mx:icon>
</mx:Button>
<mx:Button click="method_l()" id="c_l" enabled="false" x="42" y="10" fontFamily="Georgia" width="24" height="24" minWidth="24" minHeight="24">
<mx:icon>@Embed('pre.png')</mx:icon>
</mx:Button>
<mx:ComboBox rowCount="10" change="method_select()" id="c_select" enabled="false" x="74" y="10" width="54"></mx:ComboBox>
<mx:Button click="method_r()" id="c_r" enabled="false" x="136" y="10" fontFamily="Georgia" width="24" height="24" minWidth="24" minHeight="24">
<mx:icon>@Embed('next.png')</mx:icon>
</mx:Button>
<mx:Button click="method_re()" id="c_re" enabled="false" x="168" y="10" fontFamily="Georgia" width="24" height="24" minWidth="24" minHeight="24">
<mx:icon>@Embed('last.png')</mx:icon>
</mx:Button>
<mx:Script>
<![CDATA[
import com.yonghong.controller.events.PageChangeEvent;
import mx.controls.Alert;
private var mRecordCount:int=0;
private var mPageSize:int =20;
private var mPageIndex:int =0;
private var mPageCount:int = 0;
public function method_l():void
{
mPageIndex=mPageIndex-1;
SetState();
OnPageChange();
}
public function method_le():void
{
mPageIndex =0;
SetState();
OnPageChange();
}
public function method_r():void
{
mPageIndex=mPageIndex+1;
SetState();
OnPageChange();
}
public function method_re():void
{
mPageIndex=mPageCount-1;
SetState();
OnPageChange();
}
public function method_select():void
{
mPageIndex = c_select.selectedItem.data;
SetState();
OnPageChange();
}
public function get PageIndex():int
{
return mPageIndex;
}
//设置记录总数
public function set RecordCount(count:int):void
{
mRecordCount= count;
if(count >0)
{
SetState();
}
}
private function SetState():void
{
if(mRecordCount%mPageSize > 0)
{
mPageCount = mRecordCount/mPageSize+1;
}
else
{
mPageCount = mRecordCount/mPageSize;
}
var pages:Array = new Array();
for(var i:int =1;i<=mPageCount;i++)
{
pages.push( {label:i.toString(), data:i-1});
}
c_select.dataProvider= pages;
c_select.selectedIndex= mPageIndex;
if(mPageCount>1)
{
c_select.enabled=true;
c_l.enabled=true;
c_le.enabled=true;
c_r.enabled=true;
c_re.enabled=true;
if(mPageIndex==0)
{
c_l.enabled=false;
c_le.enabled=false;
}
if(mPageIndex == mPageCount-1)
{
c_r.enabled=false;
c_re.enabled=false;
}
}
else
{
c_select.enabled=false;
c_l.enabled=false;
c_le.enabled=false;
c_r.enabled=false;
c_re.enabled=false;
}
pageinfo.text="Records:" + mRecordCount+"/" + mPageCount+"pages";
}
//获取记录总数
public function get RecordCount():int
{
return mRecordCount;
}
//打开分页控件
public function Open():void{
mPageIndex =0;
OnPageChange();
}
//刷新当前页面
public function Refresh():void
{
OnPageChange();
}
private function OnPageChange():void
{
var e:PageChangeEvent = new PageChangeEvent(mPageIndex,
mPageSize);
dispatchEvent(e);
}
]]>
</mx:Script>
<mx:Label x="200" y="10" width="175" fontSize="12" id="pageinfo"/>
</mx:Canvas>
3.如何应用此控件(关键)
<?xml version="1.0" encoding="utf-8"?>
<mx:Application initialize="oninit()" xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" xmlns:ns2="com.yonghong.components.*">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
import com.yonghong.model.vo.PatientRecordVO;
import com.yonghong.model.service.RegistrationManagerService;
import com.yonghong.controller.events.PageChangeEvent;
import mx.controls.Alert;
import flash.events.Event;
private var registerManagerService:RegistrationManagerService=new RegistrationManagerService();
private var datas:Array = new Array();
function oninit():void
{
pagebar1.Open();
}
function findPatientReocordHandler(event:ResultEvent):void{
var datas:ArrayCollection=event.result as ArrayCollection;
pagebar1.RecordCount =1000;
pagebar1.Open();
}
function pagechange(e:PageChangeEvent):void
{
registerManagerService.findPatientRecordPaging(new PatientRecordVO(),e.PageIndex,20,findPatientReocordHandler2);
}
function findPatientReocordHandler2(event:ResultEvent):void{
pagebar1.RecordCount =1000;
datalist.dataProvider=event.result;
}
]]>
</mx:Script>
<mx:DataGrid width="100%" id="datalist">
<mx:columns>
<mx:DataGridColumn headerText="no" dataField="no"/>
<mx:DataGridColumn headerText="surname" dataField="surname"/>
</mx:columns>
</mx:DataGrid>
<ns2:PageBar id="pagebar1" PageChange="pagechange(event)" >
</ns2:PageBar>
</mx:Application>
1.自定义分页事件
package com.yonghong.controller.events
{
import flash.events.Event;
public class PageChangeEvent extends flash.events.Event
{
public function PageChangeEvent(pageindex:int,pagesize:int)
{
super("PageChange");
PageIndex= pageindex;
PageSize =pagesize;
}
public var PageIndex:int=0;
public var PageSize:int=0;
}
}
2.自定义分页栏
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="466" height="40">
<mx:Metadata>
[Event(name="PageChange", type="com.yonghong.controller.events.PageChangeEvent",bubbles="true",cancelable="true")]
</mx:Metadata>
<mx:Button click="method_le()" id="c_le" enabled="false" x="10" y="10" fontFamily="Georgia" width="24" height="24" minWidth="24" minHeight="24">
<mx:icon>@Embed('first.png')</mx:icon>
</mx:Button>
<mx:Button click="method_l()" id="c_l" enabled="false" x="42" y="10" fontFamily="Georgia" width="24" height="24" minWidth="24" minHeight="24">
<mx:icon>@Embed('pre.png')</mx:icon>
</mx:Button>
<mx:ComboBox rowCount="10" change="method_select()" id="c_select" enabled="false" x="74" y="10" width="54"></mx:ComboBox>
<mx:Button click="method_r()" id="c_r" enabled="false" x="136" y="10" fontFamily="Georgia" width="24" height="24" minWidth="24" minHeight="24">
<mx:icon>@Embed('next.png')</mx:icon>
</mx:Button>
<mx:Button click="method_re()" id="c_re" enabled="false" x="168" y="10" fontFamily="Georgia" width="24" height="24" minWidth="24" minHeight="24">
<mx:icon>@Embed('last.png')</mx:icon>
</mx:Button>
<mx:Script>
<![CDATA[
import com.yonghong.controller.events.PageChangeEvent;
import mx.controls.Alert;
private var mRecordCount:int=0;
private var mPageSize:int =20;
private var mPageIndex:int =0;
private var mPageCount:int = 0;
public function method_l():void
{
mPageIndex=mPageIndex-1;
SetState();
OnPageChange();
}
public function method_le():void
{
mPageIndex =0;
SetState();
OnPageChange();
}
public function method_r():void
{
mPageIndex=mPageIndex+1;
SetState();
OnPageChange();
}
public function method_re():void
{
mPageIndex=mPageCount-1;
SetState();
OnPageChange();
}
public function method_select():void
{
mPageIndex = c_select.selectedItem.data;
SetState();
OnPageChange();
}
public function get PageIndex():int
{
return mPageIndex;
}
//设置记录总数
public function set RecordCount(count:int):void
{
mRecordCount= count;
if(count >0)
{
SetState();
}
}
private function SetState():void
{
if(mRecordCount%mPageSize > 0)
{
mPageCount = mRecordCount/mPageSize+1;
}
else
{
mPageCount = mRecordCount/mPageSize;
}
var pages:Array = new Array();
for(var i:int =1;i<=mPageCount;i++)
{
pages.push( {label:i.toString(), data:i-1});
}
c_select.dataProvider= pages;
c_select.selectedIndex= mPageIndex;
if(mPageCount>1)
{
c_select.enabled=true;
c_l.enabled=true;
c_le.enabled=true;
c_r.enabled=true;
c_re.enabled=true;
if(mPageIndex==0)
{
c_l.enabled=false;
c_le.enabled=false;
}
if(mPageIndex == mPageCount-1)
{
c_r.enabled=false;
c_re.enabled=false;
}
}
else
{
c_select.enabled=false;
c_l.enabled=false;
c_le.enabled=false;
c_r.enabled=false;
c_re.enabled=false;
}
pageinfo.text="Records:" + mRecordCount+"/" + mPageCount+"pages";
}
//获取记录总数
public function get RecordCount():int
{
return mRecordCount;
}
//打开分页控件
public function Open():void{
mPageIndex =0;
OnPageChange();
}
//刷新当前页面
public function Refresh():void
{
OnPageChange();
}
private function OnPageChange():void
{
var e:PageChangeEvent = new PageChangeEvent(mPageIndex,
mPageSize);
dispatchEvent(e);
}
]]>
</mx:Script>
<mx:Label x="200" y="10" width="175" fontSize="12" id="pageinfo"/>
</mx:Canvas>
3.如何应用此控件(关键)
<?xml version="1.0" encoding="utf-8"?>
<mx:Application initialize="oninit()" xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" xmlns:ns2="com.yonghong.components.*">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
import com.yonghong.model.vo.PatientRecordVO;
import com.yonghong.model.service.RegistrationManagerService;
import com.yonghong.controller.events.PageChangeEvent;
import mx.controls.Alert;
import flash.events.Event;
private var registerManagerService:RegistrationManagerService=new RegistrationManagerService();
private var datas:Array = new Array();
function oninit():void
{
pagebar1.Open();
}
function findPatientReocordHandler(event:ResultEvent):void{
var datas:ArrayCollection=event.result as ArrayCollection;
pagebar1.RecordCount =1000;
pagebar1.Open();
}
function pagechange(e:PageChangeEvent):void
{
registerManagerService.findPatientRecordPaging(new PatientRecordVO(),e.PageIndex,20,findPatientReocordHandler2);
}
function findPatientReocordHandler2(event:ResultEvent):void{
pagebar1.RecordCount =1000;
datalist.dataProvider=event.result;
}
]]>
</mx:Script>
<mx:DataGrid width="100%" id="datalist">
<mx:columns>
<mx:DataGridColumn headerText="no" dataField="no"/>
<mx:DataGridColumn headerText="surname" dataField="surname"/>
</mx:columns>
</mx:DataGrid>
<ns2:PageBar id="pagebar1" PageChange="pagechange(event)" >
</ns2:PageBar>
</mx:Application>
发表评论
-
how to keep dragged TitleWindow within Flex app boundary
2010-04-21 17:12 1551I am using PopupManager in FB ... -
java.lang.ClassCastException: flex.messaging.io.amf.ASObject cannot be cast to
2010-03-10 16:48 7627后台Java类: public class ... -
Flex3 tab键 失效
2010-03-02 15:10 1460我在Flex Application中因为想要Applicat ... -
创建Flex组件
2009-12-17 14:41 1193转自:http://www.ibm.com/developer ... -
Flex Canvas 获取焦点 失去焦点
2009-12-07 11:58 3853在Flex3中,虽然Canvas没有工具的提示,但是focus ... -
Flex3 + Blazeds+Spring2.5+Hibernate3.2 整合
2009-11-18 13:11 2160分两工程创建,当然也可创建一个工程就可以 CMS J ... -
Flex3.2实现中英文国际化
2009-10-12 17:56 25971.到Flex SDK3.2的bin下运行命令:copyloc ... -
拖拽时自动展开 Tree 节点
2009-06-02 17:22 1101有时候我们想要对Tree进行拖拽操作,把一个节点从父 ... -
Flex 获取焦点问题
2009-04-28 15:21 3870Flex中获取焦点可以用 application.focusM ... -
flex navigateToURL 中文乱码问题
2009-04-06 15:01 4866flex做前端,servlet做后端 在flex中naviga ... -
自定义ClassFactory,让DataGrid动态改变Button或Image等属性II
2009-02-19 14:11 2994上一期提到Flex3 自定义ClassFactory,让Dat ... -
IconUtility Component for Dynamic Run-Time Icons
2009-02-19 10:00 1751IconUtility Component for Dynam ... -
Flex3 自定义ClassFactory,让DataGrid动态改变Button或Image等属性
2009-02-18 13:09 6165在Flex的DataGrid中显示按钮Button或者图片Im ... -
DataGrid 颜色背景的控制 Actionscript3版本(三)
2009-02-02 17:44 1353<?xml version="1.0" ... -
DataGrid 背景颜色的控制(二)
2009-02-02 17:43 1887<?xml version="1.0" ... -
DataGrid 背景颜色的控制(一)
2009-02-02 17:41 2978设置行(row)的背景色 主要是通过对DataGrid扩展, ...
相关推荐
8. **自定义外观**:根据需求,你可以自定义DataGrid的样式,以及分页控件的外观和交互。 以上就是使用C#在WPF中实现DataGrid分页的基本流程。实际项目中可能还需要考虑其他细节,如错误处理、性能优化等。在wpf....
在标题提到的“WPF中的DataGrid、Button、ComboBox等样式+DataGrid分页控件”中,我们将深入探讨这些关键组件以及如何自定义它们的样式和实现分页功能。 首先,DataGrid是WPF中用于展示和编辑表格数据的强大控件。...
在本案例中,开发者创建了一个自定义的分页控件,而非使用预定义的控件如ASP.NET中的Pager或WinForms中的DataGrid,这样可以更灵活地根据项目需求进行定制。 接下来,我们关注C#中的委托。委托在C#中扮演着函数指针...
在Flex中,可以创建一个自定义组件来封装分页控件。例如,使用HBox和VRule布局按钮和链接栏,Button用于实现导航功能,LinkBar用于显示页码,ComboBox用于选择每页记录数。事件监听器如`navigateButtonClick`和`...
这是我自己开发的一个dataGrid分页的控件,上传的资源是一个打成包的flex项目,这个控件在查询数据时是与后台进行实时交互的,表格的表头样式是重写皮肤类进行定义的,而隔行变色是通过css来实现的。其中最重要的...
下面将详细讲解Flex DataGrid的分页控件源码及其实现原理。 1. **Flex DataGrid基础** Flex DataGrid是Flex SDK中的一个组件,用于显示表格形式的数据。它可以处理各种数据源,如ArrayCollection、...
.NET框架提供了一些内置的分页控件,如ASP.NET中的GridView和DataGrid,但这些控件可能无法满足开发者对于外观、功能或性能的特殊需求,因此,自定义分页控件的需求应运而生。 创建自定义分页控件涉及以下几个关键...
ASP.NET 中自定义 DataGrid 分页设置的实现 在 ASP.NET 中,DataGrid 是一个常用的控件,用于显示数据列表。然而,DataGrid 的分页设置是 ASP.NET 开发中最常见的问题之一。在本文中,我们将实现 DataGrid 的个性化...
在.NET开发环境中,C# WinForm应用经常需要处理大量数据,这时自定义分页控件显得尤为重要。"C# Winform+devexpress 自定义分页控件"是为了解决这个问题而设计的一种解决方案,它利用DevExpress组件库的强大功能,...
本话题将深入探讨如何自定义DataGrid的分页块,实现一个完美的分页效果。 DataGrid的分页功能默认提供了一些基本选项,如每页显示的记录数和页码导航。然而,这些默认设置可能无法满足所有需求,比如自定义样式、...
在Windows Presentation Foundation (WPF) 中,`DataGrid` 是一个强大的控件,常用于显示和编辑表格数据。实现分页功能是提高大型数据集显示性能的重要手段,它能让用户更有效地浏览和管理大量信息。在本文中,我们...
3. **用户界面**:创建分页控件,如页码选择器和记录数显示,通过事件监听来响应用户操作,更新DataGrid的数据。 4. **数据排序和过滤**:如果需要在前台进行数据排序或过滤,要确保这些操作不会影响到整个数据集,...
本文将详细解析使用AS3.0在Flex中实现DataGrid分页的功能,帮助你深入理解这一技术。 首先,Flex是Adobe开发的一个开放源代码框架,用于构建富互联网应用程序(RIA)。它提供了丰富的组件库,包括DataGrid,这是一...
这个主题——"flex 自定义 datagrid 列头带组合框进行过滤",涉及到的关键知识点包括Flex组件定制、DataGrid列头的扩展以及ComboBox控件的使用。 1. Flex组件定制: 在Flex中,我们可以使用MXML和ActionScript来...
在这些文件中,你应该能够找到关于DataGrid模板列和自定义控件的实现示例,以及依赖属性绑定的代码实例。 总结,DataGrid模板列自定义控件的使用是提升WPF应用界面功能性和用户体验的重要手段。通过结合依赖属性的...
在Flex开发中,数据网格(DataGrid)是用于展示大量结构化数据的常用组件。它允许用户以表格形式查看和操作数据。然而,有时我们可能需要根据数据的特定值来改变DataGrid中单元格的样式,例如颜色。这就涉及到了...
默认的分页可能无法满足所有需求,比如自定义每页显示的行数、自定义分页控件样式等。开发者可以通过实现自己的分页逻辑,结合数据虚拟化技术,确保只加载当前视图所需的记录,从而提高应用程序的响应速度。 该资源...
本篇将详细讲解如何在WPF中实现Datagrid的分页控件。 首先,了解基本概念。分页是将大数据集分割成较小的、可管理的部分,每次只显示一部分,用户可以通过翻页浏览整个数据集。在WPF Datagrid中,我们通常使用...
标题提到的“DATAGRID分页控件”就是为了解决这个问题,它提供了对大量数据进行有效管理和浏览的能力。 1. **分页功能**:在`DataGridView`中实现分页通常需要自定义逻辑或使用第三方控件。基础的`DataGridView`...
本文将深入探讨如何在Flex中自定义Datagrid的ItemRender,以实现按钮、单选、复选和日期等控件的集成。 首先,我们需要了解ItemRender的基本概念。ItemRenderer是Flex提供的一种机制,允许开发者为数据网格中的每一...