<mx:Script>
<![CDATA[
import mx.controls.dataGridClasses.DataGridItemRender;
import mx.controls.DataGrid;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.controls.Alter;
import mx.managers.PopUpManager;
import mx.managers.CursorManager;
private function init():void //初始化 获取数据源
{
testRO.LoadData("servername and para"); //外部服务及其参数
}
private function getResult(e:ResultEvent):void //将结果绑定到DG上
{
var arr:Array=e.result as Array;
testDG.dataProvider=arr;
}
private function on_error(e:FaultEvent):void //错误提示
{
Alert.show(e.message.toString(),"err");
}
private function testclick():void //单击DG时,获取的选中行的信息
{
var selectdata:Object=testDG.selectedItem;
Alert.show("click:"+selectdata.COL1);
}
private function testDclick():void //双击事件,动作同单击
{
testclick();
}
]]>
</mx:Script>
<mx:RemoteObject id="testRO" destination="GenericDestination" source="testServer" result="getResult(event)" fault="on_error(event)"/>
//双击事件必须设置doubleClickEnable="true" paddingBottom="0" 等是取消单元格间的空隙
<mx:DataGrid id="testDG" itemClick="testclick()" doubleClickEnable="true" itemDoubleClick="testDclick()" paddingBottom="0" paddingTop="0" paddingLeft="0" paddingRight="0" testAlign="center">
<mx:columns>
<mx:DataGridColumn headerText="col1" dataField="COL1"/> //非渲染列
<mx:DataGridColumn headerText="col2" dataField="COL2"> //渲染列
<mx:itemRender>
<mx:Component>
<mx:HBox horizotalAlign="center">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
private var test_var:String;
override public function set data(value:Object):void
{
if(value[COL1]=="1")
{
this.setStyle("color",0xffffff); //改变字颜色
this.setStyle("backgroundColor",0xff0000);//改变背景色
testImg.source="a.jpg"; //动态添加图片
testTxt.htmlText=value.COL2;//设置显示数据
test_var=value.COL1;//获取当先单元格值到变量
}
}
private function clickHandler(x:String):void //获取单元格信息
{
Alert.show("x:"+x);
}
]]>
</mx:Script>
<mx:Image click="clickHandler(test_var)" id="testImg" autoLoad="true"/>
<mx:Text id="testTxt"/>
</mx:HBox>
</mx:Component>
</mx:itemRender>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
</mx:RemoteObject>