-1

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

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

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

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

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

谢谢

4

1 回答 1

2

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>
于 2012-05-23T02:44:00.530 回答