PDA

Просмотр полной версии : custom Renderer


KiL33
08.02.2010, 16:20
Не получается (и вообще возможно ли это) создать кастом рендер для компонента дата Грид со следующими требованиями

- В дата гриде 4 колонки 2 строки. Первая строка пустая, во вторую во все ячейки(4) необходимо кастомно рендерить компонент NumericStepper

вот так приложение виснит

<mx:XML id="headersXML">
<root>
<headers param1="param1" param2="param2" param3="param3" param4="param4"/>
<headers param1="1" param2="1" param3="1" param4="1"/>
</root>

</mx:XML>


<mx:DataGrid id="dg" dataProvider="{headersXML.headers}" width="100%" height="100%"
dragEnabled="true"
dropEnabled="true"
dragMoveEnabled="true">
<mx:columns>
<mx:DataGridColumn headerText="Column-1" dataField="param1" itemRenderer="stepperRenderer"/>
<mx:DataGridColumn headerText="Column-2" dataField="param2" itemRenderer="stepperRenderer"/>
<mx:DataGridColumn headerText="Column-3" dataField="param3" itemRenderer="stepperRenderer"/>
<mx:DataGridColumn headerText="Column-4" dataField="param4" itemRenderer="stepperRenderer"/>
</mx:columns>
</mx:DataGrid>

и отдельный mxml компонент stepperRenderer

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.controls.NumericStepper;

override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth, unscaledHeight)
if(data.@param1 == "1") {
var h:NumericStepper = new NumericStepper();
addChild(h);
}
}
]]>
</mx:Script>
</mx:Canvas>

SDA_Grails
08.02.2010, 19:06
чтобы рендерить вам необходимо отлавливать override function date (value:object) .
Вот полезная ссылка на мой взгляд, думаю что поможет

http://drodionov.narod.ru/flex/ir/itemrenderer01.html

Если помогла отпишите!!