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

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>

(编辑:李大同)

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

    推荐文章
      热点阅读