,,使用DataGrid中扩展ItemRenderer和HeaderRenderer进行操作

,,使用DataGrid中扩展ItemRenderer和HeaderRenderer进行操作

这两天用Flex DataGrid做了点事,走了不少弯路。现在我来分享一下我的经验。

如果仅仅只是简单的显示数据,或者对显示数据做一些格式化操作,基本的数据网格,加标签功能支持就可以满足了,但大多我们需要针对不同的数据和对象,进行不同的渲染,比如检验盒啦,下拉选择框,日期等等,再比如自己控制显示复杂视图,比如甘特(图表)设计的图之类。这就必须扩展项目渲染器和领导.(1)有关ItemRenderer的类实现IDataRenderer和IDropInListItemRenderer接口。很多柔性控制类都默认实现了伊达兰德勒接口,比如按钮、容器、文本区等等。很多柔性控制类也实现了IDropInListItemRenderer接口,但可惜容器没有默认实现。而我做的东西,需要绘图,所以直接利用帆布扩展,就必须自己实现IDropInListItemRenderer接口,来获取列表数据对象。复制代码代码如下:私有var _ list数据:baselist数据;//使列表数据属性可绑定. Bindable('dataChange')]公共函数get list data():baselist data { return _ list data;}公共函数集列表数据(value:BaseListData):void { _ list data=value;}私有var _ list数据:baselist数据;//使列表数据属性可绑定. Bindable('dataChange')]公共函数get list data():baselist data { return _ list data;}公共函数集列表数据(value:BaseListData):void { _ list data=value;} 可惜俺刚开始不知道之个,所以耗费了很长时间,花费在寻找如何获取当前列指数问题上。这样,我才可以在setData方法中,获取到DataGridColumn对象,如下(我使用的是高级数据网格对象): 复制代码代码如下:var DG:高级数据网格=this。作为高级数据网格的所有者;//listData就是实现IDropInListItemRenderer接口所可以获取的var gdgc:ganttaadvanceddatagridcolumn=DG。列[列出数据。列索引]作为ganttaadvanceddatagridcolumnvar DG:高级数据网格=this。作为高级数据网格的所有者;//listData就是实现IDropInListItemRenderer接口所可以获取的var gdgc:ganttaadvanceddatagridcolumn=DG。列[列出数据。列索引]作为ganttaadvanceddatagridcolumn(2)扩展DataGridColumn对象来增加属性,传递参数。 有些属性我需要动态从外面传递进来,但有不属于列表数据数据的部分。而网格标题需要利用这些数据做一些渲染操作。这时候就需要扩展实现DataGridColumn对象,同时在头戴勒对象中获取此DataGridColumn对象来获取参数。

如下是扩展的一个AdvanceDataGridColumn使用,在这个扩展中,增加了开始日期和最后日期两个属性复制代码代码如下:Gantt:ganttaadvanceddatagridcolumn id=' Gantt column '标题text=' Gantt '项目渲染器=' { ganttItemEditor } '标题渲染器=' { ganttHeaderEditor } '最小宽度=' 400 '/Gantt:ganttaadvanceddatagridcolumn id=' Gantt column '标题text=' Gantt '项目渲染器=' { ganttItemEditor } '标题渲染器=' { ganttheader editor } '最小宽度=' 400 '/这样,就可以在应用初始化的时候,在外部对此圆柱进行设置:复制代码代码如下:ganttColumn.startDate=新日期(开始时间);ganttColumn.lastDate=新日期(上次);ganttColumn.startDate=新日期(开始时间);ganttColumn.lastDate=新日期(上次);在头戴勒中,在setData方法中,可以获取相应的对象和参数复制代码代码如下:覆盖公共函数集数据(值:对象):void { super。数据=值;var advancedDataGridColumn:ganttaadvanceddatagridcolumn=value as ganttaadvanceddatagridcolumn;if(advancedDataGridColumn!=null){ if(advanceddatagridcolumn。开始日期!=null){开始日期=advanceddatagridcolumn。开始日期;最后日期=advanceddatagridcolumn。最后日期;render();} } }覆盖公共函数集数据(值:对象):void { super。数据=值;var advancedDataGridColumn:ganttaadvanceddatagridcolumn=value as ganttaadvanceddatagridcolumn;if(advancedDataGridColumn!=null){ if(advanceddatagridcolumn。开始日期!=null){开始日期=advanceddatagridcolumn。开始日期;最后日期=advanceddatagridcolumn。最后日期;render();} } } (3)利用标签功能进行显示数据格式化比如我想对日期数据进行格式化操作,如下所示:复制代码代码如下:私有函数date_labelFunc(item:Object,column:AdvancedDataGridColumn):String { var date formatter:date formatter=new date formatter();日期格式化程序。格式字符串=' YYYY-MM-DD HH:NN ';var td:Date=新日期(新编号(项目[列。数据字段]);返回日期格式化程序。格式(TD);}私有函数date_labelFunc(item:Object,column:AdvancedDataGridColumn):String { var date formatter:date formatter=new date formatter();日期格式化程序。格式字符串=' YYYY-MM-DD HH:NN ';var td:Date=新日期(新编号(项目[列。数据字段]);返回日期格式化程序。格式(TD);} 在不愿具体说明自己性别的人士使用的称谓的datagridcolumn中,就可以引用这个标签功能复制代码代码如下:MX:AdvancedDataGridColumn头文本='开始时间'数据字段='开始时间'标签函数=' date _ label func '宽度=' 120 '/MX:AdvancedDataGridColumn头文本='开始时间'数据字段='开始时间'标签函数=' date _ label func '宽度=' 120 '/

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • word文档无法编辑是怎么回事-
  • 华为手机怎么设置返回键(华为手机下面的三个按键设置方法)
  • lumia950怎么样(Lumia950体验分享)
  • otg连接是什么意思(OTG连接手机方法)
  • 笔记本触摸板怎么右键(笔记本电脑触控板手势操作设置)
  • 真我x7怎么样(realme X7 系列体验)
  • 苹果的A16处理器有多强(苹果的A16处理器的介绍)
  • 小米互传怎么用(小米手机的连接与共享教程)
  • 怎么设置电脑桌面图标自动对齐 设置电脑桌面自动整理图标的方法
  • 宽带错误651最简单解决方法(处理宽带错误651的措施)
  • 大学生手机有什么推荐(大学生换手机攻略)
  • 天玑1100和骁龙778g哪个好(骁龙778G、天玑900、天玑1100购选建议)
  • yum update 升级报错的解决办法
  • Windows10禁用屏保教程
  • 连接wifi显示无互联网连接怎么办(无线连上了却不能上网处理绝招)
  • 留言与评论(共有 条评论)
       
    验证码: