设置DataGrid可编辑状态下,不使用itemRenderer,控制输入值的长度,如果超长则截断。
代码如下:
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="init()"> <mx:Script> <!--[CDATA[ import mx.collections.*; import mx.controls.Alert; import mx.events.CollectionEvent; private var DGArray:Array = [ {Artist:'Pavement', Album:'Slanted and Enchanted', Price:11.99}, {Artist:'Hotdog', Album:'Brighten the Corners', Price:21.99}]; [Bindable] public var initDG:ArrayCollection; public function init():void { initDG=new ArrayCollection(DGArray); } private function formatData(index:int):void { initDG.getItemAt(index).Album=initDG.getItemAt(index).Album.substr(0,10); //for(var i:int=0;i<initDG.length;i++) // initDG.getItemAt(i).Album=initDG.getItemAt(i).Album.substr(0,10); initDG.refresh(); } ]]--> </mx:Script> <mx:DataGrid id="myGrid" width="350" height="200" dataProvider="{initDG}" editable="true" itemFocusOut="formatData(myGrid.selectedIndex)" > <mx:columns> <mx:DataGridColumn dataField="Artist" /> <mx:DataGridColumn dataField="Album" editable="true" width="100" /> <mx:DataGridColumn dataField="Price" editable="false" /> </mx:columns> </mx:DataGrid> </mx:Application>