HTTPService Проблема с возвратом результатов GeoCode в DataGrid - PullRequest
1 голос
/ 05 января 2011

Я создаю приложение Flex3, которое возвращает некоторые результаты из API геокодирования Google .

Я использую образец событий HTTPService из TourDeFlex в качестве справочного руководствачтобы имитировать.

На данный момент я жестко закодировал ответ от Google, чтобы использовать этот ответ XML: maps.googleapis.com / maps / api / geocode / xml? address = 1600 + Амфитеатр + Parkway,+ Mountain + View, + CA & sensor = false

Сетевой монитор предполагает, что я получаю действительный ответ из XML, но я полагаю, что я не ссылался на него правильно для заполнения моей DataGrid?

Я снимал с экрана проблему здесь .

Вот урезанная версия моего кода:

private function resultHandler(event:ResultEvent):void
        {
        results = event.result.GeocodeResponse.result;
        }

        private function faultHandler(event:FaultEvent):void
        {
        Alert.show(event.fault.faultDetail, "Error");
        }           

    ]]>
</mx:Script>

<mx:HTTPService id="srv" 
            url="http://maps.googleapis.com/maps/api/geocode/xml?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&amp;sensor=false"
        result="resultHandler(event)"
            fault="faultHandler(event)"/>

<mx:TitleWindow title="Find" showCloseButton="true" close="closeMe();"
            styleName="formPanel" horizontalScrollPolicy="off" verticalScrollPolicy="off"
            width="400" height="200">

    <mx:DataGrid dataProvider="{results}" width="100%" height="100%">
        <mx:columns>
        <mx:DataGridColumn dataField="type" headerText="Address"/>
        </mx:columns>
    </mx:DataGrid>

  <mx:Button label="Go" height="20" styleName="buttonGo" click="srv.send()"/>
</mx:TitleWindow>

1 Ответ

2 голосов
/ 05 января 2011

Посмотрел на xml.Возможно, первое вхождение type находится на верхнем уровне, но с этого момента type является элементом address_component .

Может быть, попробовать address_component.type в качестве поля данных DataGridColumn?Или установить поставщик данных в results.address_component?

Изменить обновление

Поскольку он читает XML, может быть установлен resultFormat="e4x" внутри тега <HttpService ..> и имеется коллекция XMLListCollection, ожидающая результата:

<mx:XMLListCollection id="xc" source="{srv.lastResult.result}"/>

<mx:DataGrid id="dg" dataProvider="{xc}">

В режиме отладки установите часы на XC, чтобы убедиться, что они заполнены

...