0

我正在尝试用 XML 文件中的国家/地区填充组合框。不幸的是,组合框没有被填满。我应该如何解决这个问题?提前致谢!

这是我的代码:

protected function navigatorcontent2_creationCompleteHandler(event:FlexEvent):void
{
    fillCboCountries.addEventListener(ResultEvent.RESULT, fillCombobox);    
    fillCboCountries.send();        
}


protected function fillCombobox(event:ResultEvent):void
{           
    cboCountries.dataProvider=event.result.global.countryItem;              
}

<fx:Declarations>
<s:HTTPService id="fillCboCountries" url="https://marnixcoosemans2013.dreamhosters.com/scripts/countries_select.php"/>  
</fx:Declarations>  

<s:ComboBox id="cboCountries" x="10" y="414" width="173" labelField="countryLabel"/>
4

3 回答 3

1

您的代码没有错误。我已将其粘贴到我的空项目中,并且在组合框中看到了您的字段。

尽管有 https,但我唯一改变的是 http。

所以问题出在数据源上,而不是在你的源代码上!不用https试试。

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
           xmlns:s="library://ns.adobe.com/flex/spark" 
           xmlns:mx="library://ns.adobe.com/flex/mx" 
           minWidth="955" minHeight="600" 
           creationComplete="navigatorcontent2_creationCompleteHandler(event)">

<fx:Declarations>
    <s:HTTPService id="fillCboCountries" url="http://marnixcoosemans2013.dreamhosters.com/scripts/countries_select.php"/>  
</fx:Declarations>  

<fx:Script>
    <![CDATA[
        import mx.events.FlexEvent;
        import mx.rpc.events.ResultEvent;

        protected function navigatorcontent2_creationCompleteHandler(event:FlexEvent):void
        {
            fillCboCountries.addEventListener(ResultEvent.RESULT, fillCombobox);    
            fillCboCountries.send();        
        }

        protected function fillCombobox(event:ResultEvent):void
        {           
            cboCountries.dataProvider=event.result.global.countryItem;              
        }
    ]]>
</fx:Script>

<s:ComboBox id="cboCountries" x="10" y="414" width="173" labelField="countryLabel"/>
</s:Application>
于 2012-12-26T23:40:56.553 回答
0

谢谢大家的帮助。

我通过将我的代码复制到一个新项目中来解决它。不幸的是,我不知道原始项目中出了什么问题。

于 2012-12-31T14:53:30.870 回答
0

在没有看到服务调用的 XML 响应是什么样子的情况下,我唯一可以建议的是将resultFormat上的设置HTTPService为“e4x”:

<s:HTTPService id="fillCboCountries"
    url="https://marnixcoosemans2013.dreamhosters.com/scripts/countries_select.php"
    resultFormat="e4x" />

这告诉 HTTPService 响应是 XML 并且您希望使用 e4x 表达式获取数据。

于 2012-12-26T22:24:25.913 回答