Flex DataGrid читает поле из lastResult.node как число - PullRequest
0 голосов
/ 28 мая 2010

Почему Flex 3 DataGrid читает строку из XML lastResult.node как число?

Поле сохраняется как var_char в mysql, php читает его как строку и передает его OK. Если их более 16, они округляются ....

Например: это в ячейке базы данных: 12345678901234567 считывается в DataGrid как номер 12345678901234568

это в ячейке базы данных: 5555544444222223333377777 PHP читает то же самое и помещает его в XML flex читает XML в arrayCollection, а DataGrid читает его как: 5.55554444422222e + 24

Так он читается как число, почему? И как заставить его читать как String?

Я пытался с labelFunction, без помощи.

Ответы [ 2 ]

1 голос
/ 28 мая 2010

Поскольку XML на самом деле представляет собой просто длинную строку символов, Flex рассматривает их как свободно типизированные переменные, что на самом деле означает, что flex смотрит на данные и старается определить тип данных. Упрощенная версия логики может пойти так: есть ли здесь какие-нибудь альфа-символы? тогда это строка. Все числа? хорошо, тогда это номер.

Я думаю, что способ обойти это - установить переменную определенного типа, а затем установить эту переменную равной XML. Так что в вашем случае вместо

trace(myXML.crazyNumberString);

попробовать

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

На самом деле я не проверял это, поэтому, если это не сработает, попробуйте некоторые варианты, такие как myValue = myXML.crazyNumberString.toString(); и myValue = myXML.crazyNumberString.toXMLString;

0 голосов
/ 30 мая 2010

Я обнаружил, что проблема была в использовании arrayCollection в качестве поставщика данных, теперь с XMLListCollection все работает нормально!

...