Flex 3:如何在ItemRenderer中获取DataGridColumn的dataField?
发布时间:2020-12-15 02:10:28 所属栏目:百科 来源:网络整理
导读:我正在尝试访问itemRenderer中的DataGridColumn的dataField.下面是dataGrid: mx:Script ![CDATA[ [Bindable] public var weeksOfMoth:ArrayCollection = new ArrayCollection([ {monday:30,tuesday:31,wednesday:1,thursday:2,friday:3,saturday:4,sunday:5
我正在尝试访问itemRenderer中的DataGridColumn的dataField.下面是dataGrid:
<mx:Script> <![CDATA[ [Bindable] public var weeksOfMoth:ArrayCollection = new ArrayCollection([ {monday:30,tuesday:31,wednesday:1,thursday:2,friday:3,saturday:4,sunday:5},{monday:6,tuesday:7,wednesday:8,thursday:9,friday:10,saturday:11,sunday:12},{monday:13,tuesday:14,wednesday:15,thursday:16,friday:17,saturday:18,sunday:19},{monday:20,tuesday:21,wednesday:22,thursday:23,friday:24,saturday:25,sunday:26},{monday:27,tuesday:28,wednesday:29,thursday:30,friday:1,saturday:2,sunday:3} ]); ]]> </mx:Script> <mx:DataGrid dataProvider="{weeksOfMoth}" > <mx:columns> <mx:DataGridColumn itemRenderer="view.DateRenderer" dataField="monday" /> <mx:DataGridColumn itemRenderer="view.DateRenderer" dataField="tuesday" /> <mx:DataGridColumn itemRenderer="view.DateRenderer" dataField="wednesday" /> <mx:DataGridColumn itemRenderer="view.DateRenderer" dataField="thursday" /> <mx:DataGridColumn itemRenderer="view.DateRenderer" dataField="friday" /> <mx:DataGridColumn itemRenderer="view.DateRenderer" dataField="saturday" /> <mx:DataGridColumn itemRenderer="view.DateRenderer" dataField="sunday" /> </mx:columns> </mx:DataGrid> 这是我的ItemRenderer: <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" > <mx:Box > <!-- How do I get the dataField here?? --> <mx:Label text="{data[dataField]}" /> </mx:Box> </mx:Canvas> 在itemRenderer的set data函数中,我收到一整周(这没关系),但是itemRenderer不知道使用哪一天,因为dataField是未知的.有谁知道如何在itemRenderer中访问此dataField? 解决方法
www.Flextras.com的评论帮助我找到了解决方案.我确实可以使用listData.dataField,但首先需要实现IDropInListItemRenderer类.
最终的ItemRenderer: <?xml version="1.0" encoding="utf-8"?> <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" implements="mx.controls.listClasses.IDropInListItemRenderer" > <mx:Script> <![CDATA[ import mx.controls.dataGridClasses.DataGridListData; import mx.controls.listClasses.BaseListData; // Internal variable for the property value. private var _listData:DataGridListData; // Make the listData property bindable. [Bindable("dataChange")] // Define the getter method. public function get listData():BaseListData { return _listData; } // Define the setter method,public function set listData(value:BaseListData):void { _listData = DataGridListData(value); } ]]> </mx:Script> <mx:Box width="80%" height="80%" verticalCenter="0" horizontalCenter="0" backgroundColor="#FFFFFF"> <mx:Label text="{data[_listData.dataField]}" /> </mx:Box> </mx:Canvas> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |