いくつかのプロパティ (開始時間と終了時間) を割り当てる必要があるため、spark データグリッドの headerRenderer をプログラムで設定する必要があります。このデータはデータベースから取得され、ロード後にこのヘッダーレンダラーに割り当てる必要があります。
プログラムで itemRenderer を設定することは問題ありませんが、headerRenderer に対して同じことを行う方法が見つかりません。
単純化されたコードは次のとおりです。
主要
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
protected function button1_clickHandler(event:MouseEvent):void
{
customHeaderColumn.headerRenderer = new ClassFactory(myHeaderRenderer);
customHeaderColumn.itemRenderer = new ClassFactory(myItemRenderer);
}
]]>
</fx:Script>
<s:layout>
<s:VerticalLayout />
</s:layout>
<s:DataGrid width="100%">
<s:dataProvider>
<s:ArrayList>
<fx:Object name="record"/>
</s:ArrayList>
</s:dataProvider>
<s:columns>
<s:ArrayList>
<s:GridColumn id="customHeaderColumn" headerText="Column 1"/>
</s:ArrayList>
</s:columns>
</s:DataGrid>
<s:Button label="change" click="button1_clickHandler(event)"/>
</s:Application>
myItemRenderer
<?xml version="1.0" encoding="utf-8"?>
<s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" clipAndEnableScrolling="true">
<s:Label top="9" left="7" text="item"/>
</s:GridItemRenderer>
myHeaderRenderer
<?xml version="1.0" encoding="utf-8"?>
<s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" clipAndEnableScrolling="true">
<s:Label top="9" left="7" text="header"/>
</s:GridItemRenderer>
ボタンをクリックすると、itemRenderer が変化するのがわかりますが、headerRenderer は同じままです。