0

私のWebアプリケーションは、次の形式でXMLを提供しています:

<Vendor name="Infosys Limited" adopTotal="120" totalstrength="775" FY10Q1="162" FY10Q2="132" FY10Q3="229" FY10Q4="254" FY11Q1="282" FY11Q2="243" FY11Q3="238" FY11Q4="233" FY12Q1="237" FY12Q2="136" FY12Q3="101" FY12Q4="120"/>
<Vendor name="Wipro" adopTotal="42" totalstrength="1181" FY10Q1="9" FY10Q2="12" FY10Q3="53" FY10Q4="67" FY11Q1="85" FY11Q2="76" FY11Q3="84" FY11Q4="82" FY12Q1="98" FY12Q2="51" FY12Q3="39" FY12Q4="42"/>
<Vendor name="Zensar Technologies Inc" adopTotal="187" totalstrength="1408" FY10Q1="207" FY10Q2="197" FY10Q3="428" FY10Q4="490" FY11Q1="511" FY11Q2="479" FY11Q3="471" FY11Q4="440" FY12Q1="440" FY12Q2="308" FY12Q3="137" FY12Q4="187"/>
<Vendor name="Hcl Technologies Limited" adopTotal="0" totalstrength="342" FY10Q1="0" FY10Q2="0" FY10Q3="0" FY10Q4="0" FY11Q1="3" FY11Q2="0" FY11Q3="9" FY11Q4="0" FY12Q1="0" FY12Q2="1" FY12Q3="1" FY12Q4="0"/>
<Vendor name="Mahindra Satyam" adopTotal="73" totalstrength="12" FY10Q1="106" FY10Q2="69" FY10Q3="50" FY10Q4="63" FY11Q1="117" FY11Q2="203" FY11Q3="192" FY11Q4="195" FY12Q1="208" FY12Q2="139" FY12Q3="53" FY12Q4="73"/>
<Vendor name="TCS" adopTotal="48" totalstrength="106" FY10Q1="54" FY10Q2="75" FY10Q3="140" FY10Q4="164" FY11Q1="164" FY11Q2="140" FY11Q3="147" FY11Q4="134" FY12Q1="124" FY12Q2="83" FY12Q3="49" FY12Q4="48"/>

しかし、Datagrid はフォーマットに従っていません。列は、xml 変数に従って指定する必要があります。列の順序は xml とは異なります。

データプロバイダーをデータグリッドに追加しただけです。助けてください。

りみさんありがとう

4

3 に答える 3

0

データグリッド定義:

<s:DataGrid id="datagrid" dataProvider="{dp}"/>

バックエンドからデータを受信したら、xml の各属性に対して次の関数を呼び出します。

private function addDataGridColumn(dataField:String):void
{
    var dgc:DataGridColumn = new DataGridColumn(dataField);
    var cols:Array = datagrid.columns;
    cols.push(dgc);
    datagrid.columns = cols;
}

それが役立つことを願っています。

于 2012-06-20T13:56:36.043 に答える
0

プロパティを宣言する方法は、内部で読み取られるプロパティの順序を反映していません。列の正しい順序を確保するには、データグリッドに列を手動で作成します。

例えば

        <mx:DataGrid id="dg" width="100%" height="100%" rowCount="5" dataProvider="{employees}">
            <mx:columns>
                <mx:DataGridColumn dataField="@name" headerText="Name"/>
                <mx:DataGridColumn dataField="@adopTotal" headerText="Total"/>
                 <....

            </mx:columns>
        </mx:DataGrid>
于 2012-06-20T13:10:46.263 に答える
0

次のように、列を明示的に定義する必要があります。

<s:DataGrid dataProvider="{dp}">
    <s:columns>
        <s:ArrayList>
            <s:GridColumn dataField="@name" headerText="Name" />
            <s:GridColumn dataField="@adopTotal" headerText="Adop" />
            <s:GridColumn dataField="@totalstrength" headerText="Strength" />
        </s:ArrayList>
    </s:columns>
</s:DataGrid>

古い mx DataGrid と非常によく似ています。

<mx:DataGrid dataProvider="{dp}">
    <mx:columns>
        <mx:DataGridColumn dataField="..." headerText="..." />
    </mx:columns>
</mx:DataGrid>

プロパティは、そのdataField列に表示するプロパティを決定します。
プロパティはheaderText、列ヘッダーに表示されるラベルを決定します。記号は@XML 属性を参照します。通常のコレクションでは必要ありません。

于 2012-06-20T13:05:04.767 に答える