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

 

 

     

       

             itemEditEnd="editHandle(event)">  

             

                 

                     

                         

                             

                         

                     

                 

                 

                 

                 

                 

                 

                     

                         

                             

                         

                     

                 

                  

                 

                     

                         

                             

                         

                     

                 

             

         

         

     

      

      

      

     

         

     

      

     

       

             itemClick="itemHandle(event)">  

             

               

                     itemRenderer="renderer.CheckBoxRenderer"/>  

                 

                 

                 

                 

                 

                         

                             

                         

                     

                 

             

         

         

         

     

      

     

     

         

     

       

            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,year:2009,city:"Beijing",provice:"河北省",total:7852020,selected:false,flag:1},  

            {Id:1003,year:2009,city:"Nanjing",provice:"江苏省",total:895145,selected:false,flag:2},  

            {Id:1004,year:2009,city:"Hangzhou",provice:"浙江省",total:4132415,selected:false,flag:3},  

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

            {Id:1006,year:2009,city:"Beijing",provice:"河北省",total:7852020,selected:false,flag:1},  

            {Id:1007,year:2009,city:"Nanjing",provice:"江苏省",total:895145,selected:false,flag:2},  

            {Id:1008,year:2009,city:"Hangzhou",provice:"浙江省",total:4132415,selected:false,flag:2},  

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

            {Id:1010,year:2009,city:"Beijing",provice:"河北省",total:7852020,selected:false,flag:1},  

            {Id:1012,year:2009,city:"Nanjing",provice:"江苏省",total:895145,selected:false,flag:2},  

            {Id:1013,year:2009,city:"Hangzhou",provice:"浙江省",total:4132415,selected:false,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;  

            }   

              

        ]]-->