dataprovider标签正在flex中工作

时间:2011-02-07 14:39:26

标签: flex dataprovider

hai我是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}"

它返回带对象的数据网格

2 个答案:

答案 0 :(得分:0)

数据提供者必须是您的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}"/>

答案 1 :(得分:0)

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

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

BR 弗兰克