-2

我是 flex 的新手,正在尝试示例但一无所获

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="bookData.send()">
<mx:HTTPService id="bookData" url="/assets/books.xml"/>
<mx:DataGrid x="56" y="250" width="950" dataProvider= "{bookData.lastResult.books.stock}"/>
</mx:Application>

以上是我的 mxml 文件这里是我的 books.xml

<?xml version="1.0" encoding="iso-8859-1"?>
<books>
<stock>
<name>The Picasso Code</name>
<author>Dan Blue</author>
<category>Fiction</category>
<description>Cubist paintings reveal a secret society of people who really look like that</description>
</stock>
<stock>....

我认为我在 dataprovider 标签中做错了原因是当我使用

dataProvider = "{d}"

它返回带有对象的数据网格

4

2 回答 2

0

dataprovider 必须是您的 HttpService bookData 的 resultEvent 的股票。您应该在 HttpService 标记中使用 result 事件。例如,

<mx:HTTPService id="bookData" url="/assets/books.xml" result="contentHandler(event)"/>   

            import mx.rpc.events.ResultEvent;  
            [Bindable] private var xmlListData:XMLList; 
            private function contentHandler(evt:ResultEvent):void{  
                xmlListData= evt.result.stock;
            } 

<mx:DataGrid x="56" y="250" width="950" dataProvider= "{xmlListData}"/>
于 2011-02-07T18:30:02.120 回答
0

我在您的代码中缺少的是您的 xml 的 url-request 。每当从后端调用新数据时,Databindung 和 Dataprovider 都需要事件库通信,第一次也是如此。

您需要将 xml 从后端转换为 xmlCollection。使 var 可绑定。您的可绑定 XMLXollection 的名称是您的 Dataprovider。

BR弗兰克

于 2011-02-07T18:36:46.437 回答