4

高度なデータグリッドのツリー列にレンダラーを使用し、階層機能を維持することは可能ですか? レンダラー プロバイダーを使用すると、ツリー ドロップダウンの矢印が表示されなくなります。ツリー機能を維持し、列の表示を変更したい(フォルダ画像だけでなく)

<mx:AdvancedDataGridRendererProvider column="{titleCol}" depth="1"
        renderer="com.something.titleColumnRenderer"/>

titleColumnRenderer:

<mx:VBox width="100%" xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Label id="titleLabel" textAlign="center" text="sometext" width="100"/></mx:VBox>
4

1 に答える 1

10

これを達成するために私がしたことは次のとおりです。

  1. AdvancedDataGridGroupItemRenderer を拡張するクラスを作成する
  2. 新しいクラスで updateDisplayList をオーバーライドし、必要なことを行います
  3. 新しいクラスを AdvancedDataGrid の groupItemRenderer プロパティに割り当てます

新しいクラスは次のようになります

public class CustomGroupRenderer extends AdvancedDataGridGroupItemRenderer
{
    override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
    {
        super.updateDisplayList(unscaledWidth, unscaledHeight);

        var listData:AdvancedDataGridListData = listData as AdvancedDataGridListData;
        var advancedDataGrid:AdvancedDataGridDataGrid = listData.owner as AdvancedDataGrid;

        var cellBackgroundColor:uint = 0xFF0000;

        var g:Graphics = graphics;
        g.clear();

        if (!advancedDataGrid.isItemSelected(data) && !advancedDataGrid.isItemHighlighted(data))
        {
            g.beginFill(cellBackgroundColor);
            g.drawRect(0, 0, unscaledWidth, unscaledHeight);
            g.endFill();
        }
    }
}

次に、このクラスを AdvancedDataGrid の groupItemRenderer プロパティに割り当てます。

<mx:AdvancedDataGrid groupItemRenderer="com.whereever.CustomGroupRenderer"/>

または、ActionScript では:

myAdvancedDataGrid.groupItemRenderer = new ClassFactory(com.whereever.CustomGroupRenderer);
于 2010-04-15T14:45:09.780 に答える