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