- 浏览: 47871 次
- 性别:
- 来自: 杭州
-
最新评论
v4_05 Creating item renderers and item editors 创建项目渲染器和项目编辑器
ex4-05
这部分主要讲
把有关项目渲染器的知识带到DataGrid控件中,并学习如何创建项目渲染器和项目编辑器
及如何创建渲染器和编辑器作为下拉式,内联式和组件形式的实现
如何使用渲染器里面的Spark组件
如何在DataGrid控件里的一个项目上处理一个点击事件
三种方式来实现项目渲染器和项目编辑器
下拉式 内联式 组件形式
下拉式
为实现一个下拉式的项目渲染器,需要直接在一个DataGridColumn实例中的iterRenderer或itemEditor属性中引用一个组件类文件
可以使用editorDataField属性,将列中 的数据绑定到下拉式组件中的不同属性上
如果要为项目渲染器使用项目编辑器,设置rendererIsEditor属性为true

1.首先给DataGrid加上editable=true属性
Employee Name,Hire Date的editable="false",在Vacation中加上项目编辑器
<mx:DataGrid dataProvider="{employeeList}" width="300" editable="true"> <mx:columns> <mx:DataGridColumn labelFunction="employeeName" headerText="Employee Name" width="112" editable="false"/> <mx:DataGridColumn dataField="hireDate" headerText="Hire Date" labelFunction="dateFormat" editable="false"/> <mx:DataGridColumn dataField="vacationEligibility" headerText="Vacation" itemEditor="mx.controls.NumericStepper" editorDataField="value"/> </mx:columns> </mx:DataGrid>

2.让NumericStepper总是显示
这里使用itemRenderer,并且rendererIsEditor="true"
<mx:DataGrid dataProvider="{employeeList}" width="300" editable="true"> <mx:columns> <mx:DataGridColumn labelFunction="employeeName" headerText="Employee Name" width="112" editable="false"/> <mx:DataGridColumn dataField="hireDate" headerText="Hire Date" labelFunction="dateFormat" editable="false"/> <mx:DataGridColumn dataField="vacationEligibility" headerText="Vacation" itemRenderer="mx.controls.NumericStepper" rendererIsEditor="true" editorDataField="value"/> </mx:columns> </mx:DataGrid>

3.上面的例子中下拉控件数字大小是无法规定上限的
因为属性无法传入到<!--WizRtf2Html Charset=0 -->NumericStepper 中去
可以在itemRenderer使用Component来解决设置NumericStepper 属性的问题
<mx:DataGridColumn dataField="vacationEligibility" headerText="Vacation" rendererIsEditor="true"> <mx:itemRenderer> <fx:Component> <mx:NumericStepper minimum="2" maximum="26"/> </fx:Component> </mx:itemRenderer> </mx:DataGridColumn>
4.<!--WizRtf2Html Charset=0 -->Employee Name 是创建一个<!--WizRtf2Html Charset=0 -->itemRenderer
EmployeeItemRenderer,注意创建的时间,选择MXML项呈示器
<?xml version="1.0" encoding="utf-8"?> <s:MXDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" focusEnabled="true"> <s:BorderContainer backgroundColor="#cccccc"> <s:layout> <s:VerticalLayout horizontalAlign="center" verticalAlign="middle"/> </s:layout> <s:Label text="{data.firstName} {data.lastName}"/> <mx:Image source="images/{data.id}.jpg"/> </s:BorderContainer> </s:MXDataGridItemRenderer>
然后在主应用程序中引用
<mx:columns> <mx:DataGridColumn itemRenderer="components.EmployeeItemRenderer" headerText="Employee Name" width="112" editable="false"/> <mx:DataGridColumn dataField="hireDate" headerText="Hire Date" labelFunction="dateFormat" editable="false"/> <mx:DataGridColumn dataField="vacationEligibility" headerText="Vacation" rendererIsEditor="true"> <mx:itemRenderer> <fx:Component> <mx:NumericStepper minimum="2" maximum="26"/> </fx:Component> </mx:itemRenderer> </mx:DataGridColumn> </mx:columns>

5.vacation的高度也变这么高了
怎么处理呢?在NumericStepper 加一层MXDataGridItemRenderer,通过该类,可以将 Spark 项呈示器体系结构与 MX DataGrid 控件一起使用。
<mx:itemRenderer> <fx:Component> <s:MXDataGridItemRenderer> <mx:NumericStepper minimum="2" maximum="26"/> </s:MXDataGridItemRenderer> </fx:Component> </mx:itemRenderer>

6.但是上面的vacation的值出问题了,都是最小值2了
因为使用MXDataGridItemRenderer之后,
它就是一个独立的components,所以我们要为它提供数据
注意,这里把NumericStepper 使用了Spark组件
<mx:itemRenderer> <fx:Component> <s:MXDataGridItemRenderer> <s:NumericStepper minimum="2" maximum="26" value="{data.vacationEligibility}"/> </s:MXDataGridItemRenderer> </fx:Component> </mx:itemRenderer>

7.点击事件
在DataGrid 写上itemClick事件,并处理它
<mx:DataGrid dataProvider="{employeeList}" width="300" editable="true" itemClick="datagrid1_itemClickHandler(event)">

8.最后说下HGroup
HGroup 容器是使用 HorizontalLayout 类的 Group 容器的一个实例
就是一个不用写layout的Group
发表评论
-
v5_11 创建AIR应用
2011-03-05 21:45 901v5_11 Creating an Adobe AIR app ... -
v5_07 了解皮肤的组成部分
2011-03-05 21:44 1031v5_07 Implementing skin parts 了 ... -
v5_06 绘制MXML图形
2011-03-05 21:44 808v5_06 Drawing with MXMLgraphics ... -
v5_05 了解皮肤
2011-03-05 21:44 893v5_05 Introducing skinning 了解皮肤 ... -
v5_04 使用高级CSS选择器
2011-03-05 21:44 1130v5_04 Introducing advanced CSS ... -
v5_03 在CSS文件中定义样式
2011-02-27 20:31 1100v5_03 Defining styles in CSS ... -
v5_02 使用文本布局框架
2011-02-27 20:31 697v5_02 Utilizing the Text Layout ... -
v5_01 使用文本控件
2011-02-27 20:31 953v5_01 Introducing the text cont ... -
v4_11 为视图状态应用变换
2011-02-27 20:30 970v4_11 Animating states with tra ... -
v4_10 使用特效来实现组件动画
2011-02-27 20:30 957v4_10 Animating components with ... -
v4_09 使用容器控制组件布局
2011-02-27 20:30 859v4_09 Using constraints to cont ... -
v4_07 创建应用程序状态
2011-02-27 20:30 790v4_07 Creating pages with Flex ... -
v4_06 了解导航容器
2011-02-27 20:29 717v4_06 Understanding navigator c ... -
v4_04 使用DataGrid控件
2011-02-27 12:24 734v4_04 Creating and formatting ... -
v4_03 在基于列表的组件中实施一个Spa
2011-02-27 12:24 798v4_03 Implementing a Spark item ... -
v4_02 创建自定义项目渲染器
2011-02-27 12:24 840v4_02 Creating a custom item re ... -
v4_01 在项目渲染器中显示数据
2011-02-26 15:54 837v4_01 Representing data in defa ... -
v3_07 使用双向绑定
2011-02-26 15:53 881v3_07 Implementing two-way bind ... -
v3_06 验证表单数据
2011-02-26 15:53 813v3_06 validating form data 验证表单 ... -
v4_08 应用布局
2011-02-26 15:49 737v4_08 laying out an application ...
相关推荐
- **实时渲染界面**:CATIA的实时渲染界面包括多个工具栏,如材料库工具栏、场景编辑器工具栏、动画工具栏等,提供了丰富的功能按钮,便于用户快速访问和调整渲染设置。 - **快速参考与定制**:软件还提供了快速参考...
10. **Pro版本特性**:相比免费版,Unity Pro通常提供更高的渲染质量、更大的项目存储空间、优先的技术支持和更少的Unity标识水印,适合专业开发者和商业项目。 在提供的压缩包文件中,“Unity_v4.x.ulf”可能是...
1. **全历核心功能**:全历能够展示日视图、周视图、月视图和Agenda视图等多种时间轴布局,支持拖放操作以调整事件的时间和位置,同时提供事件的创建、编辑和删除功能。 2. **事件数据源**:全历可以通过JSON、Ajax...
通常,这样的文件会包含所有必要的组件,如编辑器、运行时环境和必要的库,以便在Mac上顺利运行和开发Unity项目。 在MAC版Unity 4.2.2中,开发者可以享受到一系列功能和改进。例如,图形渲染可能得到了提升,支持...
- **易用性**:通过直观的可视化设计器,用户可以快速创建和编辑报表。 - **灵活性**:支持多种数据源,包括数据库、XML、JSON等,且可以编写自定义脚本来处理复杂的数据逻辑。 - **高性能**:FastReport拥有高效的...
在`react_recipelog`项目中,React被用来构建各个页面和交互元素,如添加、编辑和查看食谱。 **Redux状态管理** Redux是React应用中广泛采用的状态管理库,它提供了一个全局的store来集中管理应用的所有状态。在`...
7. **工具和扩展**:Babylon.js生态系统包含了多个工具和扩展,如场景编辑器、模型转换工具、预处理器等,帮助开发者更高效地工作。 8. **学习资源**:Babylon.js社区提供了丰富的文档、教程和示例代码,方便开发者...
3. 工具与资源:SDK包含了开发工具和辅助资源,如地图样式编辑器、调试工具等,帮助开发者提高开发效率。 4. 框架集成:SDK提供了与常见前端框架(如React、Vue、Angular)的集成指南,使得API可以无缝融入现代Web...
在编写视频捕捉程序时,我们需要创建一个Filter Graph,它由不同的过滤器组成,包括捕获源过滤器(通常由摄像头驱动提供)、视频渲染过滤器等。通过调用DirectShow的API,如`CoCreateInstance`创建过滤器,`Graph...
- **2.2.6 特征库编辑器工具栏(Feature Dictionary Editor Toolbar)** - 管理特征库,用于快速调用预定义的特征。 - **2.2.7 知识工程工具栏(Knowledgeware Toolbar)** - 应用参数化设计和规则驱动设计。 ...
它提供了一个内置的可视化编辑器,使得游戏逻辑的构建无需编写过多代码,但同时也支持使用GDScript编程语言进行更高级的定制。 2. **版本迭代**:从v3.2到v4的升级,Godot引入了大量改进和新特性。例如,v4版本引入...
2. **创建Filter Graph**:使用grabberds的接口创建一个包含视频源、解码器(如果需要)和帧捕获组件的过滤器图。 3. **连接组件**:将各个过滤器通过接口连接起来,形成数据流的通路。 4. **启动捕获**:调用相应...
3. **设计时属性编辑器(Design-Time Property Editors)**: - **定义**:提供了直观的界面供开发者调整图表的各个细节属性。 - **应用场景**:适合快速原型设计阶段以及UI定制需求较高的项目。 - **优势**:...