我发现了下拉列表。
实际上我通过查询将数据加载到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对象]行也会显示在下拉列表中。
你知道如何解决这个问题吗?
由于
答案 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对象,这就是为什么需要对其进行强制转换。