1

私は3列のarrayCollectionを持っています:

Col1 Col2 Col3 a 1 X b 2 Y c 3 Z d 4 W

このデータ セットを転置して、Flex DataGrid に表示したいと考えています。

以下の関数を使用してここまで取得しました。グリッドは (a、b、c、d など) を列として表示していますが、行は埋められていません。たとえば、最初の列にはヘッダーとして「a」、1 行目には「1」、2 行目には「X」が表示されます。

誰かがこれで私を助けることができますか?

これが私の機能です。

public function createColumns(myArrayColl:ArrayCollection):void{
    var advancedDataGridColumn:AdvancedDataGridColumn;
    var i:int;
    var columnsArray:Array = new Array();
    for(i=0;i< myArrayColl.length;i++){                                          
        advancedDataGridColumn=new AdvancedDataGridColumn();            
        advancedDataGridColumn.headerText= getFormattedPeriod(myArrayColl[i].Col1.toString());
        advancedDataGridColumn.dataField=myArrayColl[i].Col2.toString();   
                advancedDataGridColumn.dataField=myArrayColl[i].Col2.toString();
                advancedDataGridColumn.dataField=myArrayColl[i].Col3.toString();


        columnsArray.push(advancedDataGridColumn);
    }
    adg1.columns = columnsArray;
    adg1.invalidateDisplayList();
}
4

1 に答える 1

0

私は同じ問題を抱えていて、水平レイアウトでSpark DataGroupを使用して解決しました:

<?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">
    <fx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            [Bindable] private var array : ArrayCollection = new ArrayCollection([
                {Col1:"a",Col2:"1",Col3:"X"},
                {Col1:"b",Col2:"2",Col3:"Y"},
                {Col1:"c",Col2:"3",Col3:"Z"},
                {Col1:"d",Col2:"4",Col3:"W"},
            ]);
        ]]>
    </fx:Script>
    <s:HGroup x="225" y="49">
        <!--the VGroup below it's a kind of a 'vertical header'. If you, like use it.-->
        <s:VGroup width="50" id="vHeader">
            <s:Label text="Col 1" fontWeight="bold"/>
            <s:Label text="Col 2"/>
            <s:Label text="Col 3"/>
        </s:VGroup>
        <!--the DataGroup with Horizontal layout and a itemRenderer using a VGroup-->
        <s:DataGroup id="dataGroup" clipAndEnableScrolling="true"
                     dataProvider="{array}" width="100">
            <s:layout>
                <s:HorizontalLayout gap="1" useVirtualLayout="true"/>
            </s:layout>
            <s:itemRenderer>
                <fx:Component>
                    <s:ItemRenderer width="49">
                        <fx:Script>
                            <![CDATA[
                            ]]>
                        </fx:Script>
                        <s:VGroup>
                            <s:Label text="{data.Col1}" fontWeight="bold"/>
                            <s:Label text="{data.Col2}"/>
                            <s:Label text="{data.Col3}"/>
                        </s:VGroup>
                    </s:ItemRenderer>
                </fx:Component>
            </s:itemRenderer>
        </s:DataGroup>
    </s:HGroup>
    <!--the HSCrollBar positioned above the dataGroup-->
    <s:HScrollBar x="276" y="27" width="100" pageSize="50" stepSize="50"
                  viewport="{dataGroup}"/>
</s:Application>
于 2012-12-05T15:10:25.047 に答える