トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     XMLConnector使用せずDataGrid表示
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
nikochan01
Åê¹ÆNo.36693
投稿日時: 2007-12-8 10:43
新米
居住地:
投稿: 12
使用環境:
Win7
Flash CS5
AS3
XMLConnector使用せずDataGrid表示
こんにちは。
現在DataGridとXMLConnectorのコンポーネントでxmlをDataGridで表示させているのですが、XMLConnectorコンポーネントを使用しないで表示させたいのです。
調べてもコンポーネントを利用した方法しか分からず困っております。

xmlの読み込みだけなら
var xmlDoc = new XML();
xmlDoc.onLoad = selectData;
xmlDoc.load("item.xml");
xmlDoc.ignoreWhite = true;
という感じで書けばよいと分かったのですが、ここからさきの表示までのActionScriptがさっぱりです。

--item.xml--
<?xml version="1.0" encoding="UTF-8"?>
<dataroot>
<tbl_items>
<comment>内容</comment>
<ID>お名前</ID>
<day>日付</day>
<kensu>0</kensu>
</tbl_items>
以下 <tbl_items>?</tbl_items>の繰り返し
</dataroot>

DataGridに上記の4つの項目(comment、ID、day、kensu)を列で表示させるかたちです。
宜しくお願いします。
野中文雄
Åê¹ÆNo.36695
投稿日時: 2007-12-8 16:26
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: XMLConnector使用せずDataGrid表示
ヘルプで、DataGridクラスは調べてご覧になりましたか?DataGrid.addItem()メソッドで、値を追加すればよいのではないでしょうか。
引用:
nikochan01さんは書きました:
調べてもコンポーネントを利用した方法しか分からず困っております。
...[中略]...
DataGridに上記の4つの項目(comment、ID、day、kensu)を列で表示させるかたちです。


----------------
 

nikochan01
Åê¹ÆNo.36800
投稿日時: 2007-12-12 15:51
新米
居住地:
投稿: 12
使用環境:
Win7
Flash CS5
AS3
Re: XMLConnector使用せずDataGrid表示
お返事ありがとうございました。
ヘルプでDataGridクラスの確認をしました。

そしてActionScript上で入力したものについてはDataGridに表示もできました。しかしXMLのデータが表示できません。
調べた結果、firstchildなどでxmlの表示する場所を宣言するということは分かったのでそれを試してみました。

--ソース(長くなるのでxmlのIDだけ表示させます)--

import mx.xpath.XPathAPI

var myXML:XML = new XML();
myXML.ignoreWhite = true;
myXML.load("item.xml");
var ID:Array = new Array();
myXML.onLoad = function() {
ID=XPathAPI.selectNodeList(this.firstChild,"/dataroot/tbl_items/ID/*");
trace(ID);
}

上記のソースで、とりあえずtrace()文でIDのデータは全て出力できました。
それをDataGrid.addItem()メソッドで、表示させればよいのかと思って、
myDataGrid.addColumn("name");
var item_obj:Object = {name:ID};
myDataGrid.addItem(item_obj);
と追加記述したのですがID表示できませんでした。
元々のデータは
var item_obj:Object = {name:"名前"};
とゆう記述のされかたでした。
上記のように変えただけではダメなのでしょうか?

それと、もし表示できたとき同じ行にxmlのIDが全て表示されては困るので
<dataroot>
<tbl_items>
<ID>名前1</ID>
</tbl_items>
<tbl_items>
<ID>名前2</ID>
</tbl_items>
DataGridに名前1は1行目、名前2は2行目に表示させたいと考えております。

長くなってしまいましたが、宜しければ解決策のほどお願いします。*/
野中文雄
Åê¹ÆNo.36803
投稿日時: 2007-12-12 16:16
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: XMLConnector使用せずDataGrid表示
DataGridインスタンスにテキストとして表示されたいのでしたら、文字列を設定する必要があります。配列からノードを取出し、そのノードテキスト(文字列)を取得しなければならないでしょう。

[デバッグ] > [変数のリストアップ]より引用:
変数 _level0.ID = [オブジェクト #10, クラス 'Array'] [
  0:[オブジェクト #11, クラス 'XMLNode'] {
   名前1
  },
  1:[オブジェクト #12, クラス 'XMLNode'] {
   名前2
  }
 ]

これはDataGridでなく、XMLの扱いの問題です。理解に不十分な点があるようでしたら、XMLについて学習されることをお勧めします。
引用:
nikochan01さんは書きました:
ID=XPathAPI.selectNodeList(this.firstChild,"/dataroot/tbl_items/ID/*");
trace(ID);
// ...[後略]...*/

上記のソースで、とりあえずtrace()文でIDのデータは全て出力できました。
それをDataGrid.addItem()メソッドで、表示させればよいのかと思って、
myDataGrid.addColumn("name");
var item_obj:Object = {name:ID};
myDataGrid.addItem(item_obj);
と追加記述したのですがID表示できませんでした。
元々のデータは
var item_obj:Object = {name:"名前"};
とゆう記述のされかたでした。


----------------
 

nikochan01
Åê¹ÆNo.36817
投稿日時: 2007-12-13 11:47
新米
居住地:
投稿: 12
使用環境:
Win7
Flash CS5
AS3
Re: XMLConnector使用せずDataGrid表示
お返事ありがとうございました。
まずXMLの問題のほうでしたか。
ありがとうございました。色々調べて解決してみようと思います。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops