繁体   English   中英

使用带有itemrenderer的flex下拉列表时出现问题

[英]issue in using flex dropdownlist with itemrenderer

我试图通过扩展下拉列表来创建多选下拉列表

private var COLOR_ARRAY:Array= 
        [{label:"Red", data:"#FF0000"},
        {label:"Green", data:"#00FF00"},
        {label:"Blue", data:"#0000FF"}];
[Bindable]
public var colorAC:ArrayCollection;
private function initData():void {
            colorAC=new ArrayCollection(COLOR_ARRAY);
         }
    ]]>
</fx:Script>

<local:MultiSelectionDropDown
    width="300"
    requireSelection="false"
    itemRenderer="MultiSelectItemRenderer"
    skinClass="MultiSelectionDropDownListSkin"
    dataProvider="{colorAC}"
    labelField="label"
/>

以下是我的渲染器代码

<s:HGroup width="100%" verticalAlign="middle">
    <s:RichText id="labelDisplay"
                text="{data}"
                textAlign="left"
                styleName="listItem"
                verticalAlign="middle"
                lineBreak="toFit"
                paddingTop="10"
                paddingBottom="10"
                color.hovered ="0xffffff"
                color.selected="0xffffff"
                paddingLeft="10"
                paddingRight="10"
                horizontalCenter="0" verticalCenter="1">
    </s:RichText>

    <mx:Spacer width="100%" />
    <s:CheckBox id="checkbox" />
</s:HGroup>

我无法在下拉列表中显示标签..我在这里得到的是[对象] ...无法弄清楚我做错了什么

那是因为您将文本设置为数据对象。

text="{data}"

RichText所做的是在该对象上调用toString()方法,因此结果在“对象对象”中。 例如,您需要指定应该用于标签显示的数据的属性

text="{data.title}"

您还可以覆盖值对象中的toString()方法,并返回需要显示的任何字符串。

override public toString():String
{
    return "foobar";
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM