【问题标题】:ItemRenderer shows through ItemEditor on AdvancedDataGridItemRenderer 通过 AdvancedDataGrid 上的 ItemEditor 显示
【发布时间】:2011-04-05 13:44:24
【问题描述】:

我对 Flex 很陌生,所以我很可能遗漏了一些明显的东西,但在第一个示例代码中,一切都按预期工作。不编辑单元格时,它将居中日期显示为纯文本。编辑时,它会显示一个 DateField 编辑器。据我所知,第二个示例完全相同,除了它是AdvancedDataGridColumn。将该代码与AdvancedDataGrid 一起使用,当我进入编辑模式时,我可以在DateField 编辑器后面(在文本输入和日历图标之间)看到来自普通项目渲染器的文本。我在这里做错了吗?我怎么能隐藏它?提前致谢。

示例 1:

<mx:DataGridColumn id="endColumn"
                   dataField="endDate"
                   headerText="End"
                   editorDataField="selectedDate"
                   editable="true"
                   labelFunction="{this.formatDate}"
                   width="80"
                   textAlign="center" >
    <mx:itemEditor>
        <fx:Component>
            <mx:DateField yearNavigationEnabled="true" formatString="DD/MM/YY" />
        </fx:Component>
    </mx:itemEditor>
</mx:DataGridColumn>

示例 2:

<mx:AdvancedDataGridColumn id="endColumn"
                           dataField="endDate"
                           headerText="End"
                           editorDataField="selectedDate"
                           editable="true"
                           labelFunction="{this.formatDate}"
                           width="80"
                           textAlign="center" >
    <mx:itemEditor>
        <fx:Component>
            <mx:DateField yearNavigationEnabled="true" formatString="DD/MM/YY" />
        </fx:Component>
    </mx:itemEditor>
</mx:AdvancedDataGridColumn>

【问题讨论】:

  • 有没有机会发布一些准备运行的代码?

标签: apache-flex actionscript datagrid mxml advanceddatagrid


【解决方案1】:

dateInput 和图标之间的空间通常是透明的。我不知道为什么mx:DataGrid 隐藏了呈现的文本而mx:AdvancedDataGrid 没有。

无论如何,有一个简单的方法可以解决您的问题。只需用您喜欢的颜色绘制 itemEditors 背景。以下应该可以工作。

<mx:itemEditor>
    <fx:Component>
        <mx:DateField yearNavigationEnabled="true" formatString="DD/MM/YY">
            <fx:Script>
                <![CDATA[
                    protected override function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
                    {
                        graphics.beginFill(0xFFFFFF); // white
                        graphics.drawRect(0, 0, unscaledWidth, unscaledHeight);
                        graphics.endFill();

                        super.updateDisplayList(unscaledWidth, unscaledHeight);
                    }
                ]]>
            </fx:Script>
        </mx:DateField>
    </fx:Component>
</mx:itemEditor>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    相关资源
    最近更新 更多