sqlite + flex 4.6 + сомнения в массиве

вот флекс новичок. Я протестировал код ответа 2 из

Подключение Flex к SQLite

но я изменил его: добавил кнопку, цель которой - заполнить список данными после нажатия; результат полууспех, в списке вместо данных вернул "[object Object]"; как побороть эту проблему? Flex 4.6, следующий код:

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    title="">
<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:layout>
    <s:VerticalLayout paddingTop="10" paddingLeft="10"/>
</s:layout>
<fx:Script>

    <![CDATA[
        import flash.data.SQLConnection;
        import flash.data.SQLStatement;
        import flash.filesystem.File;
        import flash.filesystem.FileMode;

        import mx.collections.ArrayCollection;
        private function getData():ArrayCollection 
        {
            var stmt:SQLStatement = new SQLStatement();
            stmt.sqlConnection = new SQLConnection();

            stmt.sqlConnection.open(File.applicationStorageDirectory.resolvePath("assets/test.sqlite"));
            stmt.text = "SELECT one, two FROM zero";
            stmt.execute();
            var result:Array = stmt.getResult().data;
            resultArr =  new ArrayCollection();
            if (result)
            {      
                resultArr.source = result;           
            }
        return resultArr;
        }
        [Bindable]private var resultArr:ArrayCollection = new ArrayCollection();

        protected function button1_clickHandler(event:MouseEvent):void
        {
            // TODO Auto-generated method stub
            getData();
        }

    ]]>
</fx:Script>
<s:Button label="OK" click="button1_clickHandler(event)"/>
<s:List width="302" height="234" dataProvider="{resultArr}"></s:List>
</s:View>

Спасибо всем, кто хочет мне помочь.


person shazbat    schedule 08.06.2012    source источник


Ответы (1)


Вы получаете [object Object], потому что возвращаемые данные имеют несколько значений (столбцы один и два). Вам нужно будет сообщить приложению, что именно вы хотите отобразить.

Попробуйте установить параметр labelField и посмотрите, что получится:

<s:List width="302" height="234" dataProvider="{resultArr}" labelField="one"></s:List>
person Nate    schedule 08.06.2012
comment
Нет проблем, если это правильно, отметьте это как ответ, чтобы другие люди могли ему доверять :) - person Nate; 08.06.2012
comment
Рядом с ответом, где есть стрелки вверх/вниз и цифра, у вас должна быть область, чтобы пометить его как принятый. :) - person Nate; 08.06.2012