0

我发现下拉列表。

事实上,我通过查询将数据加载到 mysql 数据库。

但在 mysql 中,一条记录有空字段。

在这种情况下 flex 显示 [object object] 而不是 ' '。

[Bindable] private var DP_CLASSES:ArrayCollection;

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

// 数据提供者示例

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

即使名称为空(如记录一),[Objet object] 行也会出现在下拉列表中。

你知道怎么解决吗?

谢谢

4

1 回答 1

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 对象,这就是为什么需要强制转换它的原因。

于 2012-05-25T06:04:25.893 回答