flex----渲染器和编辑器

本文介绍了 Flex 中 DataGrid 的两种交互方式:编辑器与渲染器。编辑器用于修改单元格内容,如使用 NumericStepper 进行数值调整;渲染器则负责呈现单元格样式,例如自定义 LinkBtnRenderer 渲染器实现按钮与链接的显示。
[code]
一般渲染器和编辑器不能共存


编辑器

<mx:DataGridColumn dataField="score" headerText="金牌数" editable="true"
editorDataField="value" itemEditor="mx.controls.NumericStepper"
labelFunction="labelFun" />
itemEditor="mx.controls.NumericStepper" 代表数字微调组件, editorDataField="value" 表示数字微调组件的哪个列

labelFunction="labelFun"
internal function labelFun(item:Object,column:DataGridColumn):String
{
column.editable=false;
if (item.hasOwnProperty("score"))
return item.score+"枚";
else
return item.score=null;
}

渲染器
方式1:
<mx:DataGridColumn dataField="score" headerText="产生金牌数"
editable="true" itemRenderer="LinkBtnRenderer"//itemRenderer="mx.controls.TextInput"这个也可以哈 />

这个LinkBtnRenderer就是一个自定义的mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="200" height="30" horizontalAlign="left" verticalAlign="middle">
////注意:data是默认数据源对象
<mx:Button label="{data.label}"/>
<mx:LinkButton label="Mr+{data.data}"/>
</mx:HBox>
方式2:render是一样的,都是一个mxml而已
<mx:List id="myList" variableRowHeight="true"
height="180" width="250"
backgroundColor="white"
initialize="initCellEditor();"//渲染器在这里通过as代码指定的 >
//这里的dataProvider完全可以写在上面的属性里面哈
<mx:dataProvider>
<mx:Object label="Alaska"
data="Juneau"
webPage="http://www.state.ak.us/"/>
<mx:Object label="Alabama"
data="Montgomery"
webPage="http://www.alabama.gov/" />
<mx:Object label="Arkansas"
data="Little Rock"
webPage="http://www.state.ar.us/"/>
</mx:dataProvider>
</mx:List>

<mx:Script>
<![CDATA[
//自定义渲染器,这个list中只定义了数据提供者,而没有定义怎么呈现,
//呈现由 myList.itemRenderer的渲染器来完成
import mx.core.ClassFactory;

// Cast the value of the itemRenderer property
// to ClassFactory.
public function initCellEditor():void {
myList.itemRenderer=new ClassFactory(LinkRenderer);
}
]]>
</mx:Script>
[/code]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值