Flex 4.0中的自动完成功能不会在下拉列表中显示项目

时间:2010-08-23 02:30:27

标签: flex actionscript-3 flex4 flash-builder

我是flex,actionscript和flash builder的新手(必须升级到现有项目)。

我似乎遇到的一个问题是,似乎属于flex额外内容的自动完成组件未显示下拉列表中的项目列表。基本上,我得到一个空白项目列表。我知道他们在那里,他们是正确的项目,因为只要我点击一个,我就会在组合框中得到正确的文字。

我在mxml中的代码看起来像这样

<mx:FormItem label="Company:" width="750" fontSize="20" horizontalAlign="right" color="#000000" required="true">
    <ns1:AutoComplete enabled="true" labelField="CompanyName" textAlign="left" dropdownWidth="450" id="txtCompany" width="450"  />
</mx:FormItem>

在表单加载时的actionscript中,作为初始化的一部分,进行webservice调用,并将该调用的结果设置为上述AutoComplete框的数据提供者,如下所示

public function handleGetCompanyResult(event:ResultEvent):void{
    txtCompany.dataProvider = event.result;
}

正如我所说,当我在文本框中输入一个字母时,我看到一个左下角有一个滚动条的下拉列表,但它看起来是空的。当我点击其中一个项目时,我会在文本框中看到关联的公司名称。当我设置断点时,event.result是一个proxyObjects的ArrayCollection。

我试图更改它并放置一些像这样的虚拟数据

public function handleGetCompanyResult(event:ResultEvent):void{
            var companyList:ArrayCollection = ArrayCollection(event.result);
            var displayCompanyList:ArrayCollection = new ArrayCollection();

            displayCompanyList.addItem({CompanyName:"Test1"});
            displayCompanyList.addItem({CompanyName:"Test2"});
            displayCompanyList.addItem({CompanyName:"Test3"});

            txtCompany.dataProvider = displayCompanyList;
}

同样,当我在文本框中输入“T”时,我会看到一个包含3个空项目的下拉列表。单击第三个项目将“Test3”放在文本框中。但物品本身并不可见。

它几乎就像是一个字体/前景颜色的东西,但我也玩过一些这些设置而没有成功。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

好的,事实证明该项目是一个导入Flex 4的Flex 3项目。它可以在它所处的位置工作,并在不存在的地方发生故障。我用一个警告框创建了一个简单的Flex 4项目并且它工作正常。我慢慢地将我的所有代码移到了这个项目中,并且它有效。它给了我关于不能使用的样式标签或类似的东西的警告。我刚刚删除了所有的样式标签,它工作正常。它看起来不一样,所以我不得不再多说一点,但至少文字出现了。这与主题和Flashbuilder编译器在编译时使用它们有关。

我只能说是一个糟糕的工具。如果导入不起作用,它应该在很久以前就失败了。我搜索并搜索了与css或样式或主题相关的任何项目文件或代码文件。但很明显,它使用了一些独立于我项目的东西来控制我项目的一些小部分。我项目中控件的参数基本上取决于一些环境/因素。调试真是太痛苦了。