【问题标题】:Change the Selected TEXT Color on Spark DataGrid cell更改 Spark DataGrid 单元格上的选定文本颜色
【发布时间】:2012-05-23 01:38:02
【问题描述】:

有谁知道在 Spark DataGrid 中对选定文本应用样式的方法?

我认为最好的方法是使用带有 textarea 的 itemrenderer,但之后,我不知道该怎么做。

如果选择了单元格,我的目标不是更改颜色标签。 事实上,在我的梦想中,项目是可编辑的,您可以只选择单元格内的一些单词并将特定样式应用于文本的选定部分(通过单击一个按钮,一个用于粗体,一个用于斜体......)。然后,文本可以像 html 文本一样存储在数据库中。

我想像 RichTextEditor 一样使用单元格 itemrenderer,但没有 ControlBar。就我而言,我希望在 datadgrid 之外只有一个控制栏。

如果你能帮助我,我会很高兴。

谢谢

【问题讨论】:

    标签: actionscript-3 apache-flex flash-builder mxml


    【解决方案1】:

    使用 Spark 的最佳方法通常是皮肤。

    通过属性进行基本控制,例如更改所选颜色:

    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
                   xmlns:s="library://ns.adobe.com/flex/spark">
    
        <s:DataGrid selectionColor="0xff0000">
            <s:dataProvider>
                <s:ArrayList>
                    <fx:String>a</fx:String>
                    <fx:String>b</fx:String>
                    <fx:String>c</fx:String>
                </s:ArrayList>
            </s:dataProvider>
        </s:DataGrid>
    
    </s:Application>
    

    要为 GridColumn 实现项目渲染器,请使用 States 定义选定状态的显示方式

    GridColumnItemRenderer

    <?xml version="1.0" encoding="utf-8"?>
    <s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
                        xmlns:s="library://ns.adobe.com/flex/spark"
                        xmlns:mx="library://ns.adobe.com/flex/mx"
                        clipAndEnableScrolling="true">
    
        <s:states>
            <s:State name="normal" />
            <s:State name="selected" />
        </s:states>
    
        <fx:Script>
            <![CDATA[
                override public function prepare(hasBeenRecycled:Boolean):void
                {
                    lblData.text = data[column.dataField]
                }
            ]]>
        </fx:Script>
    
        <s:Label id="lblData"
                 color.selected="0x00ff00"
                 top="9"
                 left="7" />
    
    </s:GridItemRenderer>
    

    数据网格

    上面的项目渲染器是从 Spark GridColumn 指定的,如下所示:

    <s:DataGrid>
        <s:columns>
            <s:ArrayList>
                <s:GridColumn itemRenderer="GridColumnItemRenderer" />
            </s:ArrayList>
        </s:columns>
    </s:DataGrid>
    

    【讨论】:

    • 我认为我的解释很糟糕,因为我的目标不是在选择单元格时更改颜色标签。事实上,在我的梦想中,项目是可编辑的,您可以只选择单元格内的一些单词并将特定样式应用于文本的选定部分。比,文本可以像 html 文本一样存储在数据库中。
    • 您编辑的问题本质上是一个新问题,与您最初提出的问题 100% 不同。
    猜你喜欢
    • 2017-08-07
    • 1970-01-01
    • 2018-01-17
    • 2021-04-06
    • 2013-09-29
    • 2015-08-28
    • 2011-07-29
    相关资源
    最近更新 更多