![]() |
|
||||||||||
|
|||||
|
4AM Games
|
Автор Оригинала: joan_lafferty
Оригинал: How do you change the background cell color in a DataGrid? Проблема Смена фонового цвета у ячейки DataGrid, не такая простая задача, так как у ячейки по умолчанию нету свойства отвечающего за это. Так что нужно создать свой ItemRenderer, где мы сможем нарисовать свой фон в методе updateDisplayList. Решение В данном примере, был создан простой DataGrid с двумя колонками X и Y значений. Если какое либо значение превышает 100, то фон окрашивается в красный цвет, для обоих колонок используется один и тот же ItemRenderer. Подробнее Листинг ItemRenderer'а: package {
import mx.controls.Label;
import mx.controls.DataGrid;
import mx.controls.dataGridClasses.*;
import flash.display.Graphics;
public class CustomBackgroundComp extends Label
{
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
var g:Graphics = graphics;
g.clear();
var grid1:DataGrid = DataGrid(DataGridListData(listData).owner);
if (grid1.isItemSelected(data) || grid1.isItemHighlighted(data))
return;
if (data[DataGridListData(listData).dataField] > 100)
{
g.beginFill(0xFF0033);
g.drawRect(0, 0, unscaledWidth, unscaledHeight);
g.endFill();
}
}
}
}
}
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ Последний раз редактировалось Nirth; 01.02.2007 в 21:58. |
![]() |
Часовой пояс GMT +4, время: 10:12. |
|
|
« Предыдущая тема | Следующая тема » |
|
|