首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ItemRenderer contentBackgroundColor

ItemRenderer contentBackgroundColor
EN

Stack Overflow用户
提问于 2013-02-19 21:46:19
回答 2查看 84关注 0票数 0

我需要一些代码的urget帮助。我使用flex builder 3,我需要突出显示具有符号"A,B,C,D,E,F,G,H,I,G,K,L“的内容,我需要在我的列表中用一些颜色突出显示它们。我不知道在我的情况下该怎么做。,I‘t know how to do this, some people say that i need to use itemRender, but i don’我不知道该怎么做。代码如下:

代码语言:javascript
复制
   <mx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;

            [Bindable]                
            private var myDP:ArrayCollection = new ArrayCollection([
                {label1:"Alexey", Visble:false},
                {label1:"A", Visibe:true},     
                {label1:"B", Visibe:true},     
                {label1:"C", Visibe:true},     
                {label1:"D", Visibe:true},     
                {label1:"E", Visibe:true},     
                {label1:"F", Visibe:true},     
                {label1:"G", Visibe:true},     
                {label1:"H", Visibe:true},     
                {label1:"I", Visibe:true},     
                {label1:"G", Visibe:true},     
                {label1:"K", Visibe:true},     
                {label1:"L", Visibe:true},     

                {label1:"Bill", Visibe:false},     
                {label1:"Den", Visibe:false},     
                {label1:"Dima", Visibe:false},     
                {label1:"Kolya", Visibe:false},     
                {label1:"Vasya", Visibe:false},     
                {label1:"Sergei", Visibe:false},     
                {label1:"Petya", Visibe:false},     
                {label1:"Alina", Visibe:false},     
                {label1:"Dina", Visibe:false},     
                {label1:"Vlada", Visibe:false},     
                {label1:"Tolya", Visibe:false},     
                {label1:"Sasha", Visibe:false}     

            ]);               
        ]]>
    </mx:Script>

    <mx:DataGrid id="myDG" dataProvider="{myDP}" 
        x="100"
        y="200"
        width="300"
        height="200"
        variableRowHeight="false" 
        editable="false">

        <mx:columns>
            <mx:DataGridColumn dataField="label1" editorDataField="text" headerText="Name">

            </mx:DataGridColumn>
        </mx:columns>
    </mx:DataGrid> 


</mx:Application>

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-20 01:51:53

您可以尝试如下所示:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
            layout="absolute" minWidth="955" minHeight="600">
<mx:Script>
    <![CDATA[
        import mx.collections.ArrayCollection;

        public var letters:String = "ABCDEFGHIGKL";

        [Bindable]                
        private var myDP:ArrayCollection = new ArrayCollection([
            {label1:"Alexey", visible:false},
            {label1:"A", visible:true},     
            {label1:"B", visible:true},     
            {label1:"C", visible:true},     
            {label1:"D", visible:true},     
            {label1:"E", visible:true},     
            {label1:"F", visible:true},     
            {label1:"G", visible:true},     
            {label1:"H", visible:true},     
            {label1:"I", visible:true},     
            {label1:"G", visible:true},     
            {label1:"K", visible:true},     
            {label1:"L", visible:true},     

            {label1:"Bill", visible:false},     
            {label1:"Den", visible:false},     
            {label1:"Dima", visible:false},     
            {label1:"Kolya", visible:false},     
            {label1:"Vasya", visible:false},     
            {label1:"Sergei", visible:false},     
            {label1:"Petya", visible:false},     
            {label1:"Alina", visible:false},     
            {label1:"Dina", visible:false},     
            {label1:"Vlada", visible:false},     
            {label1:"Tolya", visible:false},     
            {label1:"Sasha", visible:false}     

        ]);      
    ]]>
</mx:Script>

<mx:DataGrid id="myDG" dataProvider="{myDP}" 
             x="100"
             y="200"
             width="300"
             height="200"
             variableRowHeight="false" 
             editable="false">

    <mx:columns>
        <mx:DataGridColumn dataField="label1" editorDataField="text" headerText="Name">
            <mx:itemRenderer>
                <mx:Component>
                    <mx:HBox horizontalGap="0">
                        <mx:Script>
                            <![CDATA[
                                override public function set data( value:Object ) : void 
                                {
                                    super.data = value;

                                    var isInLetters:Boolean = false;

                                    for (var i:int = 0; i < outerDocument.letters.length; i++)
                                    {
                                        if (outerDocument.letters.charAt(i) == (data.label1 as String).charAt(0))
                                        {
                                            laFirst.setStyle("color", "0xff0000");
                                            laFirst.setStyle("fontWeight", "bold");

                                            isInLetters = true;
                                            break;
                                        }
                                    }
                                    if (!isInLetters)
                                    {
                                        laFirst.setStyle("color", "0x000000");
                                        laFirst.setStyle("fontWeight", "normal");
                                    }
                                }
                            ]]>
                        </mx:Script>

                        <mx:Label id="laFirst"  text="{String(data.label1).charAt(0)}" paddingRight="0"/>
                        <mx:Label text="{String(data.label1).substr(1, String(data.label1).length - 1)}" paddingLeft="-11"/>
                    </mx:HBox>
                </mx:Component>
            </mx:itemRenderer>
        </mx:DataGridColumn>
    </mx:columns>
</mx:DataGrid> 

</mx:Application>

票数 1
EN

Stack Overflow用户

发布于 2013-02-19 22:46:18

您将需要创建自己的单元格渲染器。

下面是一些例子:

  • here - detailed
  • here - better - but in French

在行级别进行更改要容易得多,因为您可以将整个datagrid子类化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14959074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档