ItemRenderer показывает через ItemEditor на AdvancedDataGrid - PullRequest
0 голосов
/ 05 апреля 2011

Я довольно новичок во 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>

1 Ответ

1 голос
/ 06 апреля 2011

Пробел между 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>
...