`
ynp
  • 浏览: 437839 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

itemRenderer在DataGrid中应用,ComBobox过滤内容

XML 
阅读更多
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" initialize="initApp();">
    <mx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            [Bindable]
            public var testAC:ArrayCollection=new ArrayCollection([
                                                                   {Name:"aaa",
                                                                           Start:100,        Time:155,
                                                                           Start2:170, Time2:300 },
                                                                   {Name:"bbb",
                                                                           Start:120,        Time:130,
                                                                           Start2:140, Time2:160 },
                                                                   {Name:"ccc",
                                                                           Start:50,        Time:75,
                                                                           Start2:140, Time2:160 },
                                                                   {Name:"eee",
                                                                           Start:90,        Time:110,
                                                                           Start2:160, Time2:180 },
                                                                   {Name:"ddd",
                                                                           Start:10,         Time:45,
                                                                           Start2:70, Time2:85},
                                                                   {Name:"fff",  
                                                                           Start:0,        Time:10,
                                                                           Start1:20,        Time1:30,
                                                                           Start2:40,        Time2:50,
                                                                           Start3:70,        Time3:80,
                                                                           Start4:90,        Time4:100,
                                                                           Start5:110,        Time5:120,
                                                                           Start6:160,        Time6:170,
                                                                           Start7:180, Time7:1000 
                                                                   }
                                                                ]);
            
            [Bindable]
            public var expenses:ArrayCollection = new ArrayCollection([
                                                                   {Name:"SUB_5",
                                                                           Start:100,        Time:155,
                                                                           Start2:170, Time2:300 },
                                                                   {Name:"SUB_4",
                                                                           Start:120,        Time:130,
                                                                           Start2:140, Time2:160 },
                                                                   {Name:"SUB_3",
                                                                           Start:50,        Time:75,
                                                                           Start2:140, Time2:160 },
                                                                   {Name:"SUB_2",
                                                                           Start:90,        Time:110,
                                                                           Start2:160, Time2:180 },
                                                                   {Name:"SUB_1",
                                                                           Start:10,         Time:45,
                                                                           Start2:70, Time2:85},
                                                                   {Name:"MAIN",  
                                                                           Start:0,        Time:10,
                                                                           Start1:20,        Time1:30,
                                                                           Start2:40,        Time2:50,
                                                                           Start3:70,        Time3:80,
                                                                           Start4:90,        Time4:100,
                                                                           Start5:110,        Time5:120,
                                                                           Start6:160,        Time6:170,
                                                                           Start7:180, Time7:1000 
                                                                   }
                                                                ]);
            private function showAC():void{
				trace(expenses);                                              
            }
            
            
            
    //Combobox的过滤        
            private function initApp():void
            {
//                expenses.filterFunction = filterExpenses;
//                expenses.refresh();
//                trace(expenses);
            }
            
//            private function filterExpenses(item:Object):Boolean
//            {
//                if(item.Start < 100 || item.Start > 300)
//                {
//                    return false;
//                }
//                return true;
//            } 
        ]]>
    </mx:Script>
    
    <mx:DataGrid id="_grid" width="100%" dataProvider="{expenses}">
    	<mx:columns>
	    	<mx:DataGridColumn dataField="start">
		    	<mx:itemRenderer>
		    		<mx:Component>
			    		<mx:ComboBox  dataProvider="{outerDocument.testAC}" labelField="Name" change="test()">
				    		<mx:Script>
				    			<![CDATA[
				    				private function test():void{
				    					trace(outerDocument.expenses);
				    					trace("------data修改后-----------");
				    					var obj:Object = data;
				    					data.Name=this.selectedItem.Name; //若改变data.Name改变为了"ccc",则绑定_grid的expenses中的Name属性也会跟着变化
				    					trace(outerDocument.expenses); 
				    				}
				    			]]>
				    		</mx:Script>
			    		</mx:ComboBox>
		    		</mx:Component>
		    	</mx:itemRenderer>
	    	</mx:DataGridColumn>
	    	
	    	<mx:DataGridColumn dataField="Name">
		   		<mx:itemRenderer>
	    			<mx:Component>
		    			<mx:HBox>
	    					<mx:Script>
	    						<![CDATA[
			    					 override public function set data( value:Object ) : void {
		                                super.data = value;
		                                if( value.Name=="MAIN") setStyle("backgroundColor",0xff99ff); //根据表格内容改变背景色,可以做报警数据
		                                else setStyle("backgroundColor",0xffffff);
		                            }
	    						]]>
	    					</mx:Script>							
							<mx:Text width="100%" text="{data.Name}"/>
		    			</mx:HBox>
	    			</mx:Component>
	    		</mx:itemRenderer>
	    	</mx:DataGridColumn>
    	</mx:columns>
    </mx:DataGrid>
    <mx:Button click="showAC()"/>
</mx:Application> 
分享到:
评论

相关推荐

    Flex DataGrid 内嵌ComboBox 再内嵌一个 DataGrid

    本文将深入探讨如何在Flex DataGrid组件中内嵌ComboBox,并且ComboBox中再内嵌一个DataGrid,这是一项高级的UI设计技术,能够提供复杂的数据展示和交互功能。 首先,让我们理解Flex DataGrid组件。DataGrid是Flex中...

    flex DataGrid 嵌入Combobox列拖动下拉条数据混乱

    然而,在实际应用中,我们可能会遇到一些问题,比如在DataGrid中嵌入Combobox列,并且允许用户拖动列时,Combobox的数据可能会出现混乱的情况。这个问题主要是由于拖动列时,数据绑定没有正确处理导致的。 首先,...

    DataGrid的itemRenderer and HeaderRenderer

    在本话题中,我们将深入探讨如何使用`checkbox`和`combobox`作为`DataGrid`的`itemRenderer`和`headerRenderer`,以及实现全选、多选等功能。 首先,`itemRenderer`是`DataGrid`中用于自定义每一行数据项显示方式的...

    ComboBox in DataGrid tutorial

    - **ComboBoxItem**:表示ComboBox中的一项的类。我们使用此类以便更容易地动态创建项,可能是从XML或数据库数据中创建。 - **ComboBoxRenderer**:定义我们的ComboBox如何操作以及当选择一项时会发生什么的类。我们...

    flex实现 ComboBox中下拉checkbox

    然而,有时我们需要在ComboBox中嵌入多选功能,这时可以通过添加Checkbox来实现。本文将深入探讨如何在Flex中的ComboBox实现下拉列表中包含Checkbox的功能,并结合移动面板和可调整大小的面板实例,为你提供一个完整...

    flexdatagrid实现列中下拉列表与行勾选功能

    本篇文章将深入探讨如何在`Flex DataGrid`中实现列中下拉列表(ComboBox)以及行的勾选(CheckBox)功能,这在诸如数据筛选、多选操作等场景中非常常见。 首先,我们要了解`Flex DataGrid`的基本结构。`DataGrid`由...

    内渲染器_ItemRenderer

    在基于Adobe Flex的项目中,它允许开发者根据需要为数据列表(如List或DataGrid)的每个项提供定制的视觉表现。这个概念在UI设计中十分常见,因为它可以提升用户体验并使界面更具吸引力。 标题“内渲染器_...

    带复选框的树状ComboBox

    在Flex编程环境中,"带复选框的树状ComboBox"是一种高级UI组件,它结合了树形结构和下拉框的功能,并且每个节点都配备有复选框,为用户提供了一种方便的方式来多选树状数据。这样的组件在数据筛选、配置设置等场景中...

    DataGridCombox下拉列

    如果`DataGrid` 中的数据量很大,为了提高性能,我们可能需要在`ComboBox` 中实现虚拟化,只加载可视范围内的选项,而不是一次性加载所有数据。此外,合理的缓存策略也能帮助减少不必要的计算和渲染。 6. **样式与...

    FLEX中DATAgird的学习

    在本篇文章中,我们将深入探讨如何在 `DataGrid` 中应用编辑功能,包括 `editorDataField`、`itemEditor` 和 `itemRenderer` 的使用,以及如何有效地管理和保存编辑后的数据。 首先,`DataGrid` 的编辑功能允许用户...

    Flex动态生成可编辑的DataGrid具体实现代码

    在本部分内容中,我们将详细探讨Flex技术中如何实现一个动态生成并可编辑的DataGrid。DataGrid是一个常用的用于展示表格数据的组件,它允许用户通过直观的界面进行数据的浏览和编辑。在本例中,DataGrid组件将具备...

Global site tag (gtag.js) - Google Analytics