0

Flex 3 DataGrid が XML lastResult.node から文字列を数値として読み取るのはなぜですか?

フィールドは mysql で var_char として保存され、php はそれを文字列として読み取り、OK を渡します。16 文字を超える場合は丸められます....

例: データベース セルの場合: 12345678901234567 は、DataGrid で 12345678901234568 のように nubmer として読み取られます。

これはデータベースセルにあります: 55555544444222223333377777 php は同じように読み取り、XML に入れます flex は XML を arrayCollection に読み取り、DataGrid は次のように読み取ります: 5.55554444422222e+24

では、それを数値として読み取るのはなぜですか? そして、それを文字列として読み取る方法は?

私はlabelFunctionで試しましたが、助けにはなりませんでした。

4

2 に答える 2

1

XML は実際には文字の長い文字列であるため、Flex はそれらを大まかに型付けされた変数として扱います。これは、flex がデータを見て、そのデータがどのデータ型であるかを判断するのが最善であることを意味します。ロジックの単純化されたバージョンは次のようになります。それは文字列です。すべての数字?よし、それなら数字だ。

それを回避する方法は、変数を特定の型に設定してから、その変数を XML に等しく設定することだと思います。あなたの場合、代わりに

trace(myXML.crazyNumberString);

試す

var myValue:String;
myValue = myXML.crazyNumberString;
trace(myValue);

私は実際にこれをテストしていないので、うまくいかない場合はmyValue = myXML.crazyNumberString.toString();myValue =のようないくつかのバリエーションを試してくださいmyXML.crazyNumberString.toXMLString;

于 2010-05-28T17:17:14.100 に答える
0

arrayCollection をデータプロバイダーとして使用することに問題があることがわかりましたが、XMLListCollection を使用すると問題なく動作するようになりました。

于 2010-05-30T12:21:14.560 に答える