第七章.渲染器和编辑器
renderer (渲染器),或item renderer,是flex 框架一个功能强大的特性,它的使用频率很高,通过它您可以用自定义的组件显示数组或集合的数据。渲染器可用于DataGrid, List, Tile,和ComboBox 这些数据容器。渲染器可以为这些容器的数据源中的每一个元素的数据设置渲染样式(即显示形式),从而控制这些数据的显示与更新。在Flex 的应用当中会经常用到表格或列表,搞清楚如何更好的、更有效的显示和编辑这些数据是非常有用的。
如何使用item renderers 和item editors (单项的渲染器和单项的编辑器)关键在于了解item renderers 与包含他的组件(即父组件)之间的关系。所有item renderers 都有一个”data”属性,这个属性是由dataProvider 中与itemRenderer 所在行相应的记录所设定的。如何显示这些数据完全取决于开发;例如用户可以使用“drop-in”的item renderers 也可以用自定义的组件。item renderers 允许让用户修改data 属性中的数据,但这一操作会自动修改父组件中数据源的数据。(注: drop-in 是指一些己实现IDropInListItemRenderer 接口的组件,现有组件有: Button CheckBox Image Label Text 等。用户自己实现IDropInListItemRenderer 的组件, 也可以算是drop-in 。如果想深研,大家可以看:http://livedocs.adobe.com/flex/3/html/help.html?content=cellrenderer_5.html 如果不想深研,这里可以理解成Button CheckBox 等这些flex 自带组件很多网上的文章直译为下拉式组件,是不对的。)
item editor(编辑器)的功能又是与前者截然不同的,基于mx.controls.list 类的一个list当它的item renderer 组件被点击后,会实例化一个editor item renderer 组件。当这个editor失去焦点时,list 会试图去读取editorDataField 属性并与之前的data 值比较,如果有变化就把list 的数据源更新,并把itemEditor 消毁并用itemRender 替换。这意味着list 或DataGrid的行始终只能有一个itemRenderer。(我们在实际应用时,可能见不到item editor,那是因为list 的编辑状态未打开。)
目录
7.5.创建一个Item Editor,它可以处理含有复杂数据类型的Data
加支付宝好友偷能量挖...