Iam, используя flex 3.5. Я хочу установить задний цвет ячейки ячейки в datagrid на желтый, когда данные в ней больше 6.установить задний цвет ячейки ячейки сетки данных на желтый, когда значение ячейки больше, чем 6
1
A
ответ
2
Создать пользовательский визуализатор и проверить значение, когда свойство данных устанавливается:
override public function set data(value:Object):void
{
super.data = value;
if(data > 6)
setStyle("backgroundColor", 0xFFFF00);
else
setStyle("backgroundColor", 0xFFFFFF);
}
Помните, что вам нужно, чтобы вернуть цвет, если тест не пройден, поскольку списки повторного делает (вы получите случайные желтый фон, если вы не делаете).
0
Я сделал что-то подобное в прошлом, используя AdvancedDataGrid
и AdvancedDataGridRendererProvider
. Я использую Flex 4.0 SDK, но поскольку компонент AdvancedDataGrid
не изменился между 3.5 и 4.0, код должен быть схожим.
Отображатель "MyRenderer.mxml":
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
backgroundColor="{SetBackgroundColor(data)}">
<fx:Script>
<![CDATA[
[Bindable] private var bgColor:uint = 0xFFFFFF;
private function SetBackgroundColor(obj:Object):uint
{
var returnColor:uint = 0xFFFFFF;
if (obj["Quantity"] != null)
{
if (int(obj["Quantity"]) > 6)
{
returnColor = 0xFFF8DD;
}
else
{
returnColor = 0xFFFFFF;
}
return returnColor;
}
override public function set data(value:Object):void
{
super.data = value;
if (value["Quantity"] != null)
{
theLabel.text = value["Quantity"].toString();
}
else
{
theLabel.text = "";
}
}
]]>
</fx:Script>
<mx:Label id="theLabel" />
</mx:HBox>
Используя рендерер:
<mx:AdvancedDataGrid dataProvider="{YourArrayCollection}">
<mx:columns>
<mx:AdvancedDataGridColumn id="colQuantity" headerText="Qty" dataField="Quantity"/>
</mx:columns>
<mx:rendererProviders>
<mx:AdvancedDataGridRendererProvider column="{colQuantity}" depth="1" dataField="Quantity" renderer="MyRenderer" />
</mx:rendererProviders>
</mx:AdvancedDataGrid>
EDIT: Я поставил BackgroundColor в функцию, так что, когда itemRenderers get recycled функция будет вызвана и установите backgroundColor на правильное значение.