0

为什么 Flex 3 DataGrid 从 XML lastResult.node 读取字符串作为数字?

一个字段在mysql中保存为var_char,php将其读取为字符串并传递它OK。如果有超过 16 个字符,它会被四舍五入....

例如:数据库单元格中的这个:12345678901234567 在 DataGrid 中读取为 12345678901234568

这是在数据库单元格中:5555544444222223333377777 php 读取它并将其放入 XML flex 将 XML 读取到 arrayCollection 和 DataGrid 将其读取为:5.55554444422222e+24

所以它读作数字,为什么?以及如何使它读为字符串?

我尝试使用 labelFunction,没有帮助。

4

2 回答 2

1

因为 XML 实际上只是一长串字符,所以 Flex 将它们视为松散类型的变量,这实际上意味着 flex 查看数据并最好确定数据的数据类型。逻辑的简化版本可能是:那里有任何 alpha 字符吗?然后它是一个字符串。所有数字?好的,那么它是一个数字。

我认为解决它的一种方法是将变量设置为特定类型,然后将该变量设置为等于 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 回答