2012-05-25 107 views
0

我用dropdownlist發現。dropdowlist [object object]

確實我通過查詢加載數據到mysql數據庫。

但是在mysql中有一個記錄有空字段。

而在這種情況下flex顯示[object object]而不是''。

[Bindable] private var DP_CLASSES:ArrayCollection; 

<s:DropDownList id="dpClassTT" width="77" 
    dataProvider="{DP_CLASSES}"labelField="Nom" 
    /> 

// DataProvider的樣品

<TypesTT> 
    <TypeTT> 
    <Nom> </Nom> 
    </TypeTT> 
    <TypeTT> 
    <Nom>AppA</Nom> 
    <TypeTT> 
<TypesTT> 

線[Objet公司對象]下拉列表上出現即使名稱是empy(像記錄之一)。

你知道如何解決嗎?

感謝

+2

顯示一些代碼,也許? – weltraumpirat

+0

通過刪除空白條目或通過使用下面的類似if(arrayCollection.contains(blankEntry))來查找arraycollection中的空白條目,然後從ArrayCollection中移除該特定條目來創建自己的DataProvider。 –

+0

好吧,這是一個解決方案,但如何在下拉列表中添加空白條目?確實有時用戶犯了一個錯誤,想要清除選定的項目,這有多可能? – Flex60460

回答

1

我可以從你這裏發佈的有限信息說的是,你需要設置下拉列表的labelField

您可以在MXML做到這一點像

<s:DropDownList dataProvider="{myQuery}" labelField="colName" /> 

,或者你設置像的labelFunction:

<s:Script> 
    private function toLabel(item:Object):String { 
     return item["colName"].toString(); 
    } 
</s:Script> 
<s:DropDownList dataProvider="{myQuery}" labelFunction="toLabel" /> 

編輯你更新你的問題後,我認爲這是更好地使用labelFunction。

你的labelFunction會是這樣的:

function toLabel(item:Object):String { 
    var str:String=item["Nom"] as String; 
    if(str==null || str==undefined) { 
     str=""; 
    } 
    return str; 
} 

我們需要因爲空標籤Nom被視爲在AS3 XMLList對象,這就是爲什麼它是必要的投它這樣做。

+0

我發佈時出現問題,因此完成了我的問題。 Thanksq – Flex60460

+0

Thanks labelFunction非常好用 – Flex60460

+0

然後upvote並接受:) –

相關問題