<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955" minHeight="600" xmlns:local="*"
creationComplete="application1_creationCompleteHandler(event)" >
<fx:Script>
</fx:Script>
<fx:Declarations>
<fx:XMLList id="demo">
<employe>
<id>1</id>
<name>第一个</name>
<phone>123465</phone>
<flag>true</flag>
<isFP>true</isFP>
<error>asdfsfdsfasfdsfsdf</error>
</employe>
<employe>
<id>2</id>
<name>第二个</name>
<phone>321654</phone>
<flag>true</flag>
<isFP>true</isFP>
<error>asdfsfdsfasfdnsfsdfsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss</error>
</employe>
<employe>
<id>3</id>
<name>第三个</name>
<phone>321</phone>
<flag>false</flag>
<isFP>true</isFP>
<error></error>
</employe>
</fx:XMLList>
<mx:XMLListCollection source="{demo}" id="a"/>
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.controls.listClasses.ListBaseContentHolder;
import mx.core.IToolTip;
import mx.events.FlexEvent;
import mx.events.ListEvent;
import mx.managers.ToolTipManager;
public var tg:IToolTip;
public function checkBox_Handler(event:MouseEvent,obj:Object):void{
if((event.target as mx.controls.CheckBox).selected==true){
var ar:XMLListCollection=ac.dataProvider as XMLListCollection;
var n:int=ar.getItemIndex(obj);
obj.isFP="false";
(ac.dataProvider as XMLListCollection).setItemAt(obj,n);
/* ar.setItemAt(obj,n);
ac.dataProvider=ar; */
}else{
var ars:XMLListCollection=ac.dataProvider as XMLListCollection;
var ns:int=ars.getItemIndex(obj);
obj.isFP="true";
(ac.dataProvider as XMLListCollection).setItemAt(obj,ns);
/* ar.setItemAt(obj,n);
ac.dataProvider=ar; */
}
}
public function chaData(event:FocusEvent,obj:Object):void{
if(obj.flag=="true"){
var s:String= event.target.text;
if(s==obj.name){
return;
}else{
var ar:XMLListCollection=ac.dataProvider as XMLListCollection;
var n:int=ar.getItemIndex(obj);
obj.name=s;
obj.phone="cacacaca";
(ac.dataProvider as XMLListCollection).setItemAt(obj,n);
/* ar.setItemAt(obj,n);
ac.dataProvider=ar; */
}
}else{
return;
}
}
public function getEdit(ob:Object):Boolean{
if(ob.flag=='true' && ob.isFP=='true'){
return true;
}else{
return false;
}
}
public function ad(ob:Object):String{
if(ob.error!=""){
return ob.error;
}else{
return "";
}
}
public var ci:int=0;
protected function application1_creationCompleteHandler(event:FlexEvent):void
{
ac.addEventListener(ListEvent.ITEM_CLICK,fdf);
ac.addEventListener(ListEvent.ITEM_ROLL_OUT,fdc);
}
public function fdf(event:ListEvent):void{
var error:String=event.currentTarget.selectedItem.error;
ci++;
if(error!=""&&ci<=1){
tg=ToolTipManager.createToolTip(error,mouseX,mouseY,"errorTipRight");
}
}
public function fdc(event:ListEvent):void{
ci=0;
if(tg){
ToolTipManager.destroyToolTip(tg);
};
}
]]>
</fx:Script>
<mx:DataGrid dataProvider="{demo}" id="ac" width="100%" horizontalScrollPolicy="on" verticalScrollPolicy="on">
<mx:columns>
<mx:DataGridColumn headerText="不可分配" dataField="id" id="aaa" >
<mx:itemRenderer>
<fx:Component>
<mx:HBox>
<mx:CheckBox click="outerDocument.checkBox_Handler(event,data)"/>
</mx:HBox>
</fx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn dataTipFunction="ad" headerText="电话1" dataField="phone" ></mx:DataGridColumn>
<mx:DataGridColumn headerText="电话2" dataField="phone2" ></mx:DataGridColumn>
<mx:DataGridColumn headerText="电话3" dataField="phone3" ></mx:DataGridColumn>
<mx:DataGridColumn headerText="电话4" dataField="phone4" ></mx:DataGridColumn>
<mx:DataGridColumn headerText="电话5" dataField="phone5" ></mx:DataGridColumn>
<mx:DataGridColumn headerText="电话6" dataField="phone6" ></mx:DataGridColumn>
<mx:DataGridColumn headerText="电话7" dataField="phone7" ></mx:DataGridColumn>
<mx:DataGridColumn headerText="电话8" dataField="phone8" ></mx:DataGridColumn>
<mx:DataGridColumn headerText="电话9" dataField="phone9" ></mx:DataGridColumn>
<mx:DataGridColumn headerText="电话0" dataField="phone0" ></mx:DataGridColumn>
<mx:DataGridColumn headerText="电话11" dataField="phone11" ></mx:DataGridColumn>
<mx:DataGridColumn headerText="姓名" dataField="name" >
<mx:itemRenderer>
<fx:Component>
<mx:TextInput borderVisible="true" borderAlpha="0.2" contentBackgroundAlpha="0" focusOut="{outerDocument.chaData(event,data)}" text="{this.data.name}" editable="{outerDocument.getEdit(this.data)}"/>
</fx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn headerText="电话" dataField="phone" editable="{this.data.phone=='321'?true:false}">
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
</s:Application>
Flex中DataGrid获取被选中的行
最新推荐文章于 2019-08-04 08:01:16 发布