加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex checkbox和combobox作为datagrid的渲染器

发布时间:2020-12-15 01:06:35 所属栏目:百科 来源:网络整理
导读:?flex checkbox和combobox作为datagrid的渲染器 分类: flex3 2009-12-10 20:28 909人阅读 评论(2) 收藏 举报 CheckboxRenderer.as ? view plain package renderer ? { ? ? ? import flash.events.Event; ? ? ? ?? ? ? import mx.controls.CheckBox; ? ?? ?

?flex checkbox和combobox作为datagrid的渲染器

分类: flex3 2009-12-10 20:28 909人阅读 评论(2) 收藏 举报

CheckboxRenderer.as

?

view plain

package renderer ?

{ ?

? ? import flash.events.Event; ?

? ? ??

? ? import mx.controls.CheckBox; ?

??

? ? public class CheckBoxRenderer extends CheckBox ?

? ? { ?

? ? ? ? public function CheckBoxRenderer() ?

? ? ? ? { ?

? ? ? ? ? ? super(); ?

? ? ? ? ? ? this.addEventListener(Event.CHANGE,changeHandle); ?

? ? ? ? } ?

? ? ? ? ??

? ? ? ? ??

? ? ? ? override public function get data():Object{ ?

? ? ? ? ? ? return super.data; ?

? ? ? ? } ?

? ? ? ? ??

? ? ? ? override public function set data(value:Object):void{ ?

? ? ? ? ? ? super.data=value; ?

? ? ? ? ? ? this.selected=value.selected; ?

? ? ? ? } ?

? ? ? ? ??

? ? ? ? private function changeHandle(event:Event):void{ ?

? ? ? ? ? ? data.selected=this.selected; ?

? ? ? ? } ?

? ? ? ? ??

? ? } ?

} ?

main.mxml

?

view plain

<?xml version="1.0" encoding="utf-8"?> ?

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" xmlns:renderer="renderer.*"> ?

? ? <mx:Panel width="566" height="337" layout="absolute" title="修正前数据"> ?

? ? ? ? <mx:DataGrid id="dg" x="10" y="10" width="532" height="214" editable="true" dataProvider="{arr}" ?

? ? ? ? ? ? ?itemEditEnd="editHandle(event)"> ?

? ? ? ? ? ? <mx:columns> ?

? ? ? ? ? ? ? ? <mx:DataGridColumn editable="false"> ?

? ? ? ? ? ? ? ? ? ? <mx:itemRenderer> ?

? ? ? ? ? ? ? ? ? ? ? ? <mx:Component> ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? <mx:CheckBox/> ?

? ? ? ? ? ? ? ? ? ? ? ? </mx:Component> ?

? ? ? ? ? ? ? ? ? ? </mx:itemRenderer> ?

? ? ? ? ? ? ? ? </mx:DataGridColumn> ?

? ? ? ? ? ? ? ? <mx:DataGridColumn headerText="Column 1" dataField="Id" editable="false"/> ?

? ? ? ? ? ? ? ? <mx:DataGridColumn headerText="Column 1" dataField="year" editable="false"/> ?

? ? ? ? ? ? ? ? <mx:DataGridColumn headerText="Column 2" dataField="city" editable="false"/> ?

? ? ? ? ? ? ? ? <mx:DataGridColumn headerText="Column 3" dataField="total"/> ?

? ? ? ? ? ? ? ? <mx:DataGridColumn headerText="Modify" editable="false"> ?

? ? ? ? ? ? ? ? ? ? <mx:itemRenderer> ?

? ? ? ? ? ? ? ? ? ? ? ? <mx:Component> ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? <mx:Button label="修改" click="outerDocument.modifyHandle()"/> ?

? ? ? ? ? ? ? ? ? ? ? ? </mx:Component> ?

? ? ? ? ? ? ? ? ? ? </mx:itemRenderer> ?

? ? ? ? ? ? ? ? </mx:DataGridColumn> ?

? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? <mx:DataGridColumn editable="false" rendererIsEditor="true"> ?

? ? ? ? ? ? ? ? ? ? <mx:itemRenderer> ?

? ? ? ? ? ? ? ? ? ? ? ? <mx:Component> ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? <mx:ComboBox selectedIndex="{data.flag}" labelField="year" dataProvider="{outerDocument.cboxData}"/> ?

? ? ? ? ? ? ? ? ? ? ? ? </mx:Component> ?

? ? ? ? ? ? ? ? ? ? </mx:itemRenderer> ?

? ? ? ? ? ? ? ? </mx:DataGridColumn> ?

? ? ? ? ? ? </mx:columns> ?

? ? ? ? </mx:DataGrid> ?

? ? ? ? <mx:Label x="10" y="257" text="Label" width="211" height="30" id="lbl" fontWeight="bold" color="#F80112"/> ?

? ? </mx:Panel> ?

? ? ??

? ? ??

? ? ??

? ? <mx:Component id="ccc"> ?

? ? ? ? <mx:ComboBox labelField="year" dataProvider="{outerDocument.cboxData}"/> ?

? ? </mx:Component> ?

? ? ??

? ? <mx:Panel width="560" height="346" layout="absolute" title="修正后的数据"> ?

? ? ? ? <mx:DataGrid id="dg2" x="10" y="10" width="532" height="214" editable="true" dataProvider="{arr}" ?

? ? ? ? ? ? ?itemClick="itemHandle(event)"> ?

? ? ? ? ? ? <mx:columns> ?

? ? ? ? ? ? ? ? <mx:DataGridColumn paddingLeft="10" dataField="selected" editable="false" ?

? ? ? ? ? ? ? ? ? ? ?itemRenderer="renderer.CheckBoxRenderer"/> ?

? ? ? ? ? ? ? ? <mx:DataGridColumn headerText="Column 1" dataField="Id" editable="false"/> ?

? ? ? ? ? ? ? ? <mx:DataGridColumn headerText="Column 2" dataField="city" editable="false"/> ?

? ? ? ? ? ? ? ? <mx:DataGridColumn headerText="Column 3" dataField="total"/> ?

? ? ? ? ? ? ? ? <mx:DataGridColumn headerText="Modify" editable="false"> ?

? ? ? ? ? ? ? ? <mx:itemRenderer> ?

? ? ? ? ? ? ? ? ? ? ? ? <mx:Component> ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? <mx:ComboBox selectedIndex="{data.flag}" labelField="year" dataProvider="{outerDocument.cboxData}" close="outerDocument.cbHandle(this)" change="data.flag=selectedIndex"/> ?

? ? ? ? ? ? ? ? ? ? ? ? </mx:Component> ?

? ? ? ? ? ? ? ? ? ? </mx:itemRenderer> ?

? ? ? ? ? ? ? ? </mx:DataGridColumn> ?

? ? ? ? ? ? </mx:columns> ?

? ? ? ? </mx:DataGrid> ?

? ? ? ? <mx:Label x="10" y="257" text="Label" width="211" height="30" id="lbl2" fontWeight="bold" color="#F80112"/> ?

? ? ? ? <mx:CheckBox id="cbox" x="10" y="227" label="全 选" change="selectAll()"/> ?

? ? </mx:Panel> ?

? ? ??

? ? <!--==============================修改后script============================================--> ?

? ? <mx:Script> ?

? ? ? ? <!--[CDATA[ ?

? ? ? ? ? ? import mx.controls.ComboBox; ?

? ? ? ? ? ? import mx.events.ListEvent; ?

? ? ? ? ? ? ??

? ? ? ? ? ? ??

? ? ? ? ? ? private function itemHandle(event:ListEvent):void{ ?

? ? ? ? ? ? ? ? //var flag:Boolean=dg2.selectedItem.selected; ?

? ? ? ? ? ? ? ? for each(var obj:Object in arr){ ?

? ? ? ? ? ? ? ? ? ? if(obj.selected==true){ ?

? ? ? ? ? ? ? ? ? ? ? ? Alert.show(obj.Id); ?

? ? ? ? ? ? ? ? ? ? } ?

? ? ? ? ? ? ? ? } ?

? ? ? ? ? ? } ?

? ? ? ? ? ? ??

? ? ? ? ? ? private function selectAll():void{ ?

? ? ? ? ? ? ? ? if(cbox.selected==true){ ?

? ? ? ? ? ? ? ? ? ? for each(var obj:Object in arr){ ?

? ? ? ? ? ? ? ? ? ? ? ? obj.selected=true; ?

? ? ? ? ? ? ? ? ? ? } ?

? ? ? ? ? ? ? ? }else{ ?

? ? ? ? ? ? ? ? ? ? for each(var obj:Object in arr){ ?

? ? ? ? ? ? ? ? ? ? ? ? obj.selected=false; ?

? ? ? ? ? ? ? ? ? ? } ?

? ? ? ? ? ? ? ? } ?

? ? ? ? ? ? ? ? arr.refresh(); ?

? ? ? ? ? ? } ?

??

? ? ? ? ]]> ?

? ? </mx:Script> ?

? ? <!--==============================修改前script============================================--> ?

? ? <mx:Script> ?

? ? ? ? <![CDATA[ ?

? ? ? ? ? ? import mx.controls.Alert; ?

? ? ? ? ? ? import mx.controls.dataGridClasses.DataGridColumn; ?

? ? ? ? ? ? import mx.events.DataGridEvent; ?

? ? ? ? ? ? import mx.collections.ArrayCollection; ?

? ? ? ? ? ? ??

? ? ? ? ? ? [Bindable] ?

? ? ? ? ? ? private var arr:ArrayCollection=new ArrayCollection([ ?

? ? ? ? ? ? {Id:1001,year:2009,city:"Shanghai",provice:"上海",total:580000,selected:false,flag:0},?

? ? ? ? ? ? {Id:1002,city:"Beijing",provice:"河北省",total:7852020,flag:1},?

? ? ? ? ? ? {Id:1003,city:"Nanjing",provice:"江苏省",total:895145,flag:2},?

? ? ? ? ? ? {Id:1004,city:"Hangzhou",provice:"浙江省",total:4132415,flag:3},?

? ? ? ? ? ? {Id:1005,?

? ? ? ? ? ? {Id:1006,?

? ? ? ? ? ? {Id:1007,?

? ? ? ? ? ? {Id:1008,?

? ? ? ? ? ? {Id:1009,?

? ? ? ? ? ? {Id:1010,?

? ? ? ? ? ? {Id:1012,?

? ? ? ? ? ? {Id:1013,flag:3} ?

? ? ? ? ? ? ??

? ? ? ? ? ? ]); ?

? ? ? ? ? ? ??

? ? ? ? ? ? [Bindable] ?

? ? ? ? ? ? public var cboxData:ArrayCollection=new ArrayCollection([ ?

? ? ? ? ? ? {year:2006},?

? ? ? ? ? ? {year:2007},?

? ? ? ? ? ? {year:2008},?

? ? ? ? ? ? {year:2009},?

? ? ? ? ? ? ]); ?

? ? ? ? ? ? ??

? ? ? ? ??

? ? ? ? ? ? ?private function editHandle(event:DataGridEvent):void{ ?

? ? ? ? ? ? ? ? var cols:DataGridColumn=dg.columns[event.columnIndex]; ?

? ? ? ? ? ? ? ? var str:String=dg.itemEditorInstance[cols.editorDataField]; ?

? ? ? ? ? ? ? ? if(event.dataField=="total"){ ?

? ? ? ? ? ? ? ? ? ? var num:Number=Number(str); ?

? ? ? ? ? ? ? ? ? ? if(isNaN(num)||str.length>6){ ?

? ? ? ? ? ? ? ? ? ? ? ? event.preventDefault(); ?

? ? ? ? ? ? ? ? ? ? ? ? lbl.text="格式或长度不正确!"; ?

? ? ? ? ? ? ? ? ? ? }else{ ?

? ? ? ? ? ? ? ? ? ? ? ? this.lbl.text="编辑的ID:"+event.itemRenderer.data.Id+"编辑后的值是:"+str; ?

? ? ? ? ? ? ? ? ? ? ? ? /* ?*/ ?

? ? ? ? ? ? ? ? ? ? } ?

? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? } ?

? ? ? ? ? ? } ?

? ? ? ? ? ? ??

? ? ? ? ? ? private function dgItemClick(event:ListEvent):void{ ?

? ? ? ? ? ? ? ? Alert.show(dg.selectedItem.year); ?

? ? ? ? ? ? } ?

? ? ? ? ? ? ??

? ? ? ? ? ? public function modifyHandle():void{ ?

? ? ? ? ? ? ? ? this.lbl.text=dg.selectedItem.Id; ?

? ? ? ? ? ? } ?

? ? ? ? ? ? ??

? ? ? ? ? ? public function ckHandle(obj:Object):void{ ?

? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? if(obj.selected){ ?

? ? ? ? ? ? ? ? this.lbl.text+=dg.selectedItem.Id; ?

? ? ? ? ? ? ? ? } ?

? ? ? ? ? ? ? ? lbl.text=""; ?

? ? ? ? ? ? } ??

? ? ? ? ? ? ??

? ? ? ? ? ? public function cbHandle(obj:Object):void{ ?

? ? ? ? ? ? ? ? lbl2.text=dg2.selectedItem.Id+"-"+obj.selectedItem.year; ?

? ? ? ? ? ? } ??

? ? ? ? ? ? ??

? ? ? ? ]]--> ?

? ? </mx:Script> ?

</mx:Application> ?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读