2010-08-23 65 views
0

我是flex,actionscript和flash構建器(不得不升級到現有項目)的新手。Flex 4.0中的自動完成功能不會在下拉列表中顯示項目

我似乎遇到的一個問題是,似乎是flex extras一部分的Autocomplete組件不顯示下拉列表中的項目列表。基本上,我得到一個空白項目清單。我知道他們在那裏,他們是正確的項目,因爲只要我點擊一個,我在組合框中獲得正確的文本。

我在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加載窗體時,作爲一個Web服務調用時初始化的一部分,結果從該呼叫設置爲dataProvider中的像上面的自動完成框,以便

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; 
} 

同樣,當我在文本框中我看到有3個空項的下拉列表中輸入「T」。點擊第三項將「Test3」放入文本框中。但項目本身不可見。

它幾乎就像它的字體/前景色的東西,但我已經玩過一些設置也沒有成功。

任何幫助將不勝感激。

+0

這是什麼意思? *但物品本身不可見。* – Eugene 2010-08-25 09:32:15

+0

好吧,文字不可見。想象一下包含3個空字符串的下拉列表。 – Chaitanya 2010-08-25 12:20:45

回答

1

好的,結果證明這個項目是一個Flex 3項目,它被導入到Flex 4中。它工作在哪裏,哪裏沒有。我用一個警告框創建了一個簡單的Flex 4項目,它工作。我慢慢地把所有的代碼都移到了這個項目上,並且工作。它給了我關於樣式標籤關於不能使用或類似的東西的警告。我只是刪除了所有的樣式標籤,它工作正常。它看起來不一樣,所以我必須更多地擺弄它,但至少文字出現了。因此,在編譯時使用它們與主題和Flashbuilder編譯器有關。我不得不說的是一個糟糕的工具。如果進口不起作用,它應該在很久以前就失敗了。我搜索並搜索了任何與CSS或樣式或主題相關的項目文件或代碼文件。但顯然它使用的是獨立於我的項目的東西來控制我的項目的一些小部分。我項目中的控制參數基本上取決於一些環境因素。調試很痛苦。

相關問題