Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Изменение цвета ряда DataGrid в зависимости от значения датапровайдера (http://www.flasher.ru/forum/showthread.php?t=91531)

Захаров 29.04.2008 12:40

в itemRenderer в методе set data удаляйте все предыдущие настройки редерера и будет вам счастье!
Вот пример одного из моих айтимов смысл его в том что бы показывать в виде цветных прямоугольников историю перемещения объекта

Код:

package su.quarta.kadry
{
        import flash.events.Event;
        import mx.containers.Canvas;
        import mx.core.UIComponent;
        import su.quarta.kadry.webservices.GetRemoveHistoryResultEvent;
        import su.quarta.kadry.webservices.KadryWebService;
        import mx.core.IDataRenderer;
   
        public class HistoryPanel extends Canvas //DataGridItemRenderer
        {
                private var c:Canvas = new Canvas();
                private var _lineWidth:int=10;
                private var _lineHeight:int=20;
                private var _data:XML;
                private var _dataXML:XML;
                private var actualItemRenderer:IDataRenderer
                private var kws:KadryWebService = new KadryWebService();
               
                public function HistoryPanel()
                {
                        super();
                        init();
                }
                private function init():void
                {
                        kws.addEventListener(GetRemoveHistoryResultEvent.GetRemoveHistory_RESULT,onResult);
                }
                override public function get data():Object
            {
                return _data;
            }

            override public function set data(value:Object):void
            {
                      _data = value as XML ;
                      removeAllChildren();
                        create()
            }

                private function onResult(evt:Event):void
                {
                        create()
                }
       
                private function create():void
                {
                        var x:int;
                        for(var i:int=0;i<this._data.History.item.length();i++)
                        {
                                x=i*(_lineWidth+1);
                                var item:XML = new XML(this._data.History.item[i]);//подставить цвет
                                var  color:String = String(item.@color).replace("#","0x");
                                var myUIComponent:UIComponent = new UIComponent();
                                myUIComponent.graphics.beginFill(uint(color));//
                                myUIComponent.graphics.drawRect(x,0,_lineWidth,_lineHeight);
                                this.addChild(myUIComponent);
                        }
                }
        }
}



Часовой пояс GMT +4, время: 13:32.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.