Как установить альтернативный цвет строки в гибкой сетке данных? - PullRequest
3 голосов
/ 12 ноября 2009

Каков метод установки разных цветов для чередующихся строк в гибкой сетке данных? Чтобы два соседних ряда были легко идентифицированы?

Ответы [ 3 ]

10 голосов
/ 12 ноября 2009

Используйте стиль alternatingItemColors. Вы можете указать столько цветов, сколько хотите в массиве.

<mx:DataGrid id="dg" alternatingItemColors="[#449933, #994433]"
    dataProvider="{[{d:'ASD', c:'$#'},{d:'WER', c:'^@'},{d:'VCB', c:'*!'}]}">
    <mx:columns>
        <mx:DataGridColumn dataField="d"/>
        <mx:DataGridColumn dataField="c"/>
    </mx:columns>
</mx:DataGrid>

Этот стиль вступает в силу только в том случае, если не указан backgroundColor.

2 голосов
/ 01 ноября 2012

Я использовал itemRenderer в DataGridColumn

<mx:DataGrid>
   <mx:columns>
      <mx:DataGridColumn dataField="A" itemRenderer="com.shels.table.MarkObject"/>
      <mx:DataGridColumn dataField="B" />
   </mx:columns>
</mx:DataGrid>
package com.shels.table {

import flash.display.Graphics;
import flash.geom.Matrix;

import mx.controls.Label;
import mx.controls.dataGridClasses.*;

public class MarkObject extends Label {

    override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
        super.updateDisplayList(unscaledWidth, unscaledHeight);

        var g:Graphics = graphics;
        g.clear();

        var dField:String = DataGridListData(listData).dataField;
        var f:int = DataGridListData(listData).columnIndex;

        var c:int = 0xFFFFFF; 

        // c = parseInt( data[ "color"]);
        // You can to use field values from record.

        g.beginFill( c);
        g.drawRect(0, 0, unscaledWidth, unscaledHeight);

        g.endFill();
    }
}
1 голос
/ 06 декабря 2011

Альтернативный метод - использовать обработчик событий DataItemBound(Object, DataGridItemEventArgs).

Объект в этой подписи события является элементом управления DataGrid, поэтому переделайте его и используйте .DataGrid.Items.Count по модулю 2, чтобы получить ссылку на случай, когда .DataGridItemEventArgs.Item является альтернативной строкой. Затем я создал стиль css для альтернативы и изменил .DataGridItemEventArgs.Item.CssClass на этот вновь созданный стиль.

Преимущество этого метода в том, что после этого можно сделать другие манипуляции с цветом строки для выделения; alternateItemColor решение сверху всегда будет последним изменением CSS перед рендерингом, потенциально перезаписывая любое другое выделение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...