欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Flex與.NET互操作(八) 使用FluorineFx網(wǎng)關(guān)實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)

 更新時(shí)間:2009年06月15日 20:12:53   作者:  
關(guān)于遠(yuǎn)程訪問(wèn)在本系列文章中陸續(xù)的寫(xiě)了不少示例了,本文沒(méi)有準(zhǔn)備深入的去探討,為了鞏固FluorineFx網(wǎng)關(guān)的學(xué)習(xí)和使用。
于此,本文將使用FluorineFx網(wǎng)關(guān)來(lái)提供數(shù)據(jù)服務(wù)等多項(xiàng)功能來(lái)介紹通過(guò)FluorineFx實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)的相關(guān)知識(shí)點(diǎn)。

FluorineFx提供的遠(yuǎn)程訪問(wèn)包括有很多方面的知道點(diǎn),本文只介紹其中的三個(gè)知識(shí)點(diǎn):訪問(wèn)遠(yuǎn)程對(duì)象返回對(duì)象,返回DataTable,返回DataSet對(duì)象.FluorineFx安裝包里自帶有相關(guān)的示例程序,要學(xué)習(xí)更多可直接參考這些示例程序.

     在實(shí)現(xiàn)訪問(wèn)前我們同樣來(lái)做一些準(zhǔn)備工作,建立好遠(yuǎn)程對(duì)象,如下:

 1 namespace Fluorine.ServiceLibrary
 2 {
 3     public class Book
 4     {
 5         public int Id { getset; }
 6         public string Name { getset; }
 7         public string Author { getset; }
 8         public double Price { getset; }
 9     }
10 }

     下面是提供Flex訪問(wèn)的遠(yuǎn)程對(duì)象:

Code

     上面代碼片段中分別提供了返回一個(gè)對(duì)象,DataTable,DataSet對(duì)象的方法。這里只需要記住兩個(gè)關(guān)鍵標(biāo)識(shí)就行,它門(mén)是:DataTableType和DataSetType.  下面通過(guò)Flex的非可視化組件<mx:RemoteObject>來(lái)訪問(wèn)遠(yuǎn)程對(duì)象,OK,下面我們來(lái)看看具體怎么來(lái)調(diào)用。 

1 <mx:RemoteObject id="ro" destination="fluorine" >
2     source="Fluorine.ServiceLibrary.FluorineService"
3     fault="onFaultHandler(event)"
4     <mx:method name="GetBook" result="onGetBookHandler(event)"/>
5     <mx:method name="GetDataTable" result="onGetDataTableHandler(event)"/>
6     <mx:method name="GetDataSet" result="onGetDataSetHandler(event)"/>
7 </mx:RemoteObject>

一、返回對(duì)象示例

1 [Binable]
2 private var book:BookVO;
3     
4 private function onGetBookHandler(evt:ResultEvent):void
5 {
6     book=evt.result as BookVO;
7 }

     通過(guò)點(diǎn)擊按扭調(diào)用遠(yuǎn)程方法GetBook()完成方法的調(diào)用,直接可以將返回結(jié)果綁定到界面元素上。

1 <mx:Button label="Book" click="ro.GetBook()"/>
2 <mx:TextInput width="302" text="{boo.Name+book.Author+book.Price}"/>

二、返回DataTable對(duì)象

     返回DataTable和DataSet,將結(jié)果綁定到DataGrid上顯示,先看看DataGrid的定義:

1 <mx:DataGrid x="10" y="10" width="543" height="147" dataProvider="{books}">
2     <mx:columns>
3             <mx:DataGridColumn headerText="編號(hào)" dataField="Id"/>
4             <mx:DataGridColumn headerText="書(shū)名" dataField="Name"/>
5             <mx:DataGridColumn headerText="作者" dataField="Author"/>
6             <mx:DataGridColumn headerText="價(jià)格" dataField="Price"/>
7     </mx:columns>
8 </mx:DataGrid>

     DataGrid的數(shù)據(jù)源為定義的一個(gè)ArrayCollection對(duì)象,詳細(xì)如下:

1 [Binable]
2 private var books:ArrayCollection;
1 private function onGetDataTableHandler(evt:ResultEvent):void
2 {
3     books=evt.result as ArrayCollection;
4 }

 三、返回DataTable對(duì)象

1 private function onGetDataSetHandler(evt:ResultEvent):void
2 {
3     books=evt.result as ArrayCollection;
4 }

     如上便完成了通過(guò)FluorineFx網(wǎng)關(guān)來(lái)實(shí)現(xiàn)遠(yuǎn)程訪問(wèn),下面是完整的Flex端代碼,實(shí)現(xiàn)很簡(jiǎn)單這里就不作詳細(xì)講解:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
 3     <mx:Script>
 4         <![CDATA[
 5             import mx.controls.Alert;
 6             import mx.rpc.events.ResultEvent;
 7             import mx.rpc.events.FaultEvent;
 8             import mx.collections.ArrayCollection;
 9             [Binable]
10             private var books:ArrayCollection;
11             [Binable]
12             private var book:BookVO;
13             
14             private function onGetBookHandler(evt:ResultEvent):void
15             {
16                 book=evt.result as BookVO;
17             }
18             
19             private function onGetDataTableHandler(evt:ResultEvent):void
20             {
21                 books=evt.result as ArrayCollection;
22             }
23             
24             private function onGetDataSetHandler(evt:ResultEvent):void
25             {
26                 books=evt.result as ArrayCollection;
27             }
28             
29             private function onFaultHandler(evt:FaultEvent):void
30             {
31                 Alert.show(evt.fault.faultDetail);
32             }
33         ]]>
34     </mx:Script>
35     <mx:Panel x="42" y="56" width="578" height="226" layout="absolute" fontSize="12">
36     <mx:DataGrid x="10" y="10" width="543" height="147" dataProvider="{books}">
37         <mx:columns>
38                 <mx:DataGridColumn headerText="編號(hào)" dataField="Id"/>
39                 <mx:DataGridColumn headerText="書(shū)名" dataField="Name"/>
40                 <mx:DataGridColumn headerText="作者" dataField="Author"/>
41                 <mx:DataGridColumn headerText="價(jià)格" dataField="Price"/>
42         </mx:columns>
43     </mx:DataGrid>
44     <mx:ControlBar>
45         <mx:Button label="DataTable" click="getDataTable()"/>
46         <mx:Button label="DataSet" click="getDataSet()"/>
47         <mx:Button label="Book" click="ro.GetBook()"/>
48         <mx:TextInput width="302" text="{boo.Name+book.Author+book.Price}"/>
49     </mx:ControlBar>
50     </mx:Panel>
51     <mx:RemoteObject id="ro" destination="fluorine" >
52         source="Fluorine.ServiceLibrary.FluorineService"
53         fault="onFaultHandler(event)"
54         <mx:method name="GetBook" result="onGetBookHandler(event)"/>
55         <mx:method name="GetDataTable" result="onGetDataTableHandler(event)"/>
56         <mx:method name="GetDataSet" result="onGetDataSetHandler(event)"/>
57     </mx:RemoteObject>
58 </mx:Application>
="COLOR: rgb(0,128,128)">19             private function onGetDataTableHandler(evt:ResultEvent):void
20             {
21                 books=evt.result as ArrayCollection;
22             }
23             
24             private function onGetDataSetHandler(evt:ResultEvent):void
25             {
26                 books=evt.result as ArrayCollection;
27             }
28             
29             private function onFaultHandler(evt:FaultEvent):void
30             {
31                 Alert.show(evt.fault.faultDetail);
32             }
33         ]]>
34     </mx:Script>
35     <mx:Panel x="42" y="56" width="578" height="226" layout="absolute" fontSize="12">
36     <mx:DataGrid x="10" y="10" width="543" height="147" dataProvider="{books}">
37         <mx:columns>
38                 <mx:DataGridColumn headerText="編號(hào)" dataField="Id"/>
39                 <mx:DataGridColumn headerText="書(shū)名" dataField="Name"/>
40                 <mx:DataGridColumn headerText="作者" dataField="Author"/>
41                 <mx:DataGridColumn headerText="價(jià)格" dataField="Price"/>
42         </mx:columns>
43     </mx:DataGrid>
44     <mx:ControlBar>
45         <mx:Button label="DataTable" click="getDataTable()"/>
46         <mx:Button label="DataSet" click="getDataSet()"/>
47         <mx:Button label="Book" click="ro.GetBook()"/>
48         <mx:TextInput width="302" text="{boo.Name+book.Author+book.Price}"/>
49     </mx:ControlBar>
50     </mx:Panel>
51     <mx:RemoteObject id="ro" destination="fluorine" >
52         source="Fluorine.ServiceLibrary.FluorineService"
53         fault="onFaultHandler(event)"
54         <mx:method name="GetBook" result="onGetBookHandler(event)"/>
55         <mx:method name="GetDataTable" result="onGetDataTableHandler(event)"/>
56         <mx:method name="GetDataSet" result="onGetDataSetHandler(event)"/>
57     </mx:RemoteObject>
58 </mx:Application>

相關(guān)文章

最新評(píng)論