Flex中DataGrid获取被选中的行
发布时间:2020-12-15 01:25:55 所属栏目:百科 来源:网络整理
导读:?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="*" creationComplet
<?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>? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |