2012-05-23 94 views
-1

有誰知道一種方法將樣式應用於Spark DataGrid中的選定文本?更改Spark DataGrid單元格上的選定文本顏色

我認爲最好的方法是用textarea製作一個itemrenderer,但之後我不知道該怎麼做。

我的目標是不改變顏色標籤,如果單元格被選中。 事實上,在我的夢中,項目是可編輯的,您只能選擇單元格中的一些單詞,並將特定樣式應用於選定部分的文本(通過單擊按鈕,一個用於粗體,一個用於斜體...)。相比之下,文本可能像HTML文本一樣存儲在數據庫中。

我想使用單元格itemrenderer像一個RichTextEditor,但沒有ControlBar。在我的情況下,我想在datadgrid外只有一個控制欄。

我會很高興,如果你能幫助我。

謝謝

回答

2

Spark的最佳方法通常是皮膚。

有通過性能,如改變所選顏色不完善的控制:

cell

<?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定義選定狀態如何出現

cell-renderer

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> 

的DataGrid

的項目渲染以上是從星火的GridColumn規定,如:

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

我認爲我的解釋是不好的,因爲我的目標是不會改變顏色標籤,如果單元格被選中。事實上,在我的夢中,項目是可編輯的,您只能選擇單元格中的某些單詞,並將特定樣式應用於選定的文本部分。相比之下,文本可能像HTML文本一樣存儲在數據庫中。 – Flex60460

+0

您編輯的問題本質上是一個新問題,與您最初的問題完全不同。 –

相關問題