主に IT 技術を整理するためにメモ的に書き溜めています。少しだけフリーソフトもあるよ。コメントを残すには、 facebook を使ってください。

Flex で DataGrid に XML データをロードするには

最終更新日 2007-10-20 03:50:33 (1年以上前の記事です)

単純に Web 上にある XML データをロードしたい場合は、 mx:HTTPService と mx:DeataGrid の dataProvider 属性を使って以下のように簡単にできる。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
  creationComplete="xmldata.send()" layout="absolute">

  <mx:HTTPService
    id="xmldata"
    url="http://blog.enjoitech.jp/upload/33_datagrid.xml"
    useProxy="false"/>

  <mx:Panel title="xml data">
    <mx:DataGrid id="dgUser" dataProvider="{xmldata.lastResult.users.user}">
      <mx:columns>
        <mx:DataGridColumn headerText="Name" dataField="name" />
        <mx:DataGridColumn headerText="Gender" dataField="gender" />
      </mx:columns>
    </mx:DataGrid>
  </mx:Panel>
    
</mx:Application>

もし POST データを渡して動的に変化する値を取得するには。

まず mx:HTTPService に mx:request ノードを追加して、 request データを送信するように変更すればいい。
また、以下のようにすると post データのレスポンスを確認してから xml データをロードする事もできる。
まず、 HTTPService に result 属性を追加して、レスポンス時のイベントハンドラーを指定する。

  <mx:HTTPService
    result="onXmlHttpResponse(event);"
    id="xmldata"
    url="http://blog.enjoitech.jp/upload/33_datagrid.xml"
    useProxy="false"/>

次にこのイベントハンドラーを実装する。

  <mx:ScriptHgt;
    <![CDATA[
      public function onXmlHttpResponse(event:ResultEvent):void
      {
        var source:ArrayCollection = event.result.users.user as ArrayCollection;
        dgUser.dataProvider = source;
      }
    ]]Hgt;
  </mx:ScriptHgt;

そんな感じ。
にしても Flex は情報少ないな。
一部のマニアがどかっと公開してくれてるけど。

最終更新日 2007-10-20 03:50:33

コメント このエントリーをはてなブックマークに追加

フリーソフトウエア
EnjoiFLV
EnjoiPacket
EnjoiCrypto
ランキング
rank2, rank3, rank7, rank10, rank11
todo メモ
facebook 対応
ページ処理
RSS feed
検索機能
認証いる?
更新日表示
実はカテゴリ機能
多言語
実はユーザ機能
ソースその内公開
動作環境メモ
php-5.1.6 with PDO
SQLite-3.3
IE6
FireFox-1.5
RSS
非認証

検索
Google