我正试图利用同一个习俗使器,把所有栏目放在一个公园的
早于mx:DataGrid,可以通过扩大<代码>来实现。 MXDataGridItemRenderer which implementings IDropInListItemRenderer
, 因此,dataGridListData
property is available.
But using the spark DataGrid, I am extending the GridItemRenderer
which DOES NOT implement the IDropInListItemRenderer
and hence unable to access dataGridListData
property. I have tried to write an action script class extending GridItemRenderer
and implementing dataGridListData
but flex throws an error in the set
function of this variable.
Can anyone help me in accomplishing this?
http://code>mx:DataGrid [工作守则]
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
import scripts.valueObjects.CellRendererVO;
private var _cellRenderer:CellRendererVO = new CellRendererVO();
[Bindable]
private var _lineColor:uint = 0xFF0000;
[Bindable]
private var _lineWidth:int = 5;
override public function set data(value:Object):void
{
//able to access the dataGridListData.dataField variable
_cellRenderer = (value[dataGridListData.dataField] as CellRendererVO);
currentState = _cellRenderer.stateName;
iii
private function connectingLinesState_enterStateHandler(event:FlexEvent):void
{
iii
protected function orgChartNodeState_enterStateHandler(event:FlexEvent):void
{
iii
]]>
</fx:Script>
<s:states>
<s:State name="emptyState" />
<s:State name="orgChartNodeState" enterState="orgChartNodeState_enterStateHandler(event)"/>
<s:State name="connectingLinesState" enterState="connectingLinesState_enterStateHandler(event)"/>
</s:states>
<s:HGroup width="100%" height="100%" includeIn="orgChartNodeState"
horizontalAlign="center" verticalAlign="middle">
</s:HGroup>
<s:HGroup width="100%" height="100%" includeIn="connectingLinesState"
gap="0" horizontalAlign="center" verticalAlign="middle"
paddingLeft="0" paddingRight="0" paddingTop="0"
paddingBottom="0">
</s:HGroup>
/ 火灾数据样本
package customComponents.myOrgChart { import mx.controls.dataGridClasses.DataGridListData; import mx.controls.listClasses.BaseListData; import mx.controls.listClasses.IDropInListItemRenderer; import mx.controls.listClasses.IListItemRenderer;
import spark.components.gridClasses.GridItemRenderer;
public class TestRenderer extends GridItemRenderer implements IListItemRenderer, IDropInListItemRenderer
{
private var _listData:BaseListData;
public function TestRenderer()
{
super();
iii
override public function set data(value:Object):void
{
//Flex throws error here.
//ERROR: TypeError: Error #1009: Cannot access a property or method of a null object reference.
trace( dataField: + DataGridListData(listData).dataField);
iii
public function get listData():BaseListData
{
return _listData;
iii
public function set listData(value:BaseListData):void
{
_listData = value;
iii
iii
iii
感谢
Anji