Apache flex dataprovider标记在flex中工作

Apache flex dataprovider标记在flex中工作,apache-flex,dataprovider,Apache Flex,Dataprovider,我是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"/> &

我是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>

它返回带有对象的datagrid

数据提供者必须是您的HttpService bookData的resultEvent的库存。您应该在HttpService标记中使用结果事件。比如说,

<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}"/>

导入mx.rpc.events.ResultEvent;
[Bindable]私有变量xmlListData:XMLList;
私有函数contentHandler(evt:ResultEvent):void{
xmlListData=evt.result.stock;
} 

您的代码中缺少的是xml的url请求。 每当从后端调用新数据时,DataBinding和Dataprovider都需要EventBase通信,第一次也是如此

您需要的是将xml从后端转换为xmlCollection。使var可绑定。 可绑定XMLXollection的名称是您的数据提供程序


弗兰克

-1你最好从这个问题开始。输入正确的代码,并提出具体问题。
dataProvider = "{d}"
<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}"/>