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

一般渲染器和编辑器不能共存


编辑器

 <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>

你可能感兴趣的:(xml,Flex)