0

だから私は dataProvider として XMLListCollection を持つスパーク リスト コントロールを持っています。

        <wordRecord>
            <word>duck</word>
            <syllables>1</syllables>
            <firstLetter>d</firstLetter>
            <!--other fields-->
        </wordRecord>
        <wordRecord>
            <word>machete</word>
            <syllables>3</syllables>
            <firstLetter>m</firstLetter>
            <!--other fields-->
        </wordRecord>
        <!--more wordRecords-->

そして、フィールドだけから単語のリスト (基本的には 1 つの列) を出力したいと思い<word>ます。カスタム PrintDataGrid を作成しようとしましたが、空白で印刷されました。これについてどうすればいいですか?

(編集: 2012 年 9 月 12 日)

申し訳ありませんが、より多くのコードを含める必要がありました。

Web 上のどこかから採用した外部ファイル ("MyPrintView.mxml") があります。

<?xml version="1.0" encoding="utf-8"?>
    <s:VGroup xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" 
        xmlns:mx="library://ns.adobe.com/flex/mx" width="500" height="300">
        <fx:Declarations>
            <!-- Place non-visual elements (e.g., services, value objects) here -->
        </fx:Declarations>
        <mx:PrintDataGrid id="myDataGrid" width="100%">
            <mx:columns>
                <mx:DataGridColumn  />
            </mx:columns>
        </mx:PrintDataGrid>
    </s:VGroup>

ここでは、印刷を行うメインの mxml ファイル内の関数のコードを示します (外部ファイルと FlexPrintJob に必要なライブラリはインポートされており、「workingList」は、私がしようとしているスパーク リスト オブジェクトの ID です)。から印刷):

var printJob:FlexPrintJob = new FlexPrintJob();
if(printJob.start() != true) return;
var listPrintView:MyPrintView = new MyPrintView();
addElement(listPrintView);
/*Error on the following line*/
listPrintView.myDataGrid.dataProvider = workingList.dataProvider::word;
printJob.addObject(listPrintView);
printJob.send();
removeElement(listPrintView);

私が得るのは、空白の列であり、印刷された単語はありません。Flash Builder 4 で次のようなエラーが表示されます。

"Multiple markers at this line:
-1120: Access of undefined property dataProvider.
-listPrintView"
4

1 に答える 1

0

自分で修正しました。DataColumn 宣言にはdataField、表示される XML フィールドの名前を持つ属性が必要でした。ItemRenderer は野生のガチョウの追跡でした。

于 2012-09-19T23:44:16.647 に答える