dropdownlist [object object]

时间:2012-05-25 01:51:36

标签: actionscript-3 flex flash-builder

我发现了下拉列表。

实际上我通过查询将数据加载到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>

即使名称为empy(如记录一),[Objet对象]行也会显示在下拉列表中。

你知道如何解决这个问题吗?

由于

1 个答案:

答案 0 :(得分: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对象,这就是为什么需要对其进行强制转换。