2012-05-23 2 views
-1

Кто-нибудь знает способ применения стиля к выбранному тексту в Spark DataGrid?Изменение цвета выделенного текста на ячейке Spark DataGrid

Я думаю, что лучший способ - иметь itemrenderer с textarea, но после этого, я не знаю, как это сделать.

Моя цель - не менять цветную метку, если выбрана ячейка. Действительно, во сне, объект доступен для редактирования, и вы можете выбрать только некоторые слова внутри ячейки и применить определенный стиль к выбранной части текста (нажав на кнопку, один для полужирного, один для курсива ...). Более того, текст может храниться в базе данных, такой как html-текст.

Я хотел бы использовать cell itemrenderer как RichTextEditor, но без ControlBar. В моем случае, я бы хотел иметь только одну панель управления за пределами datadgrid.

Буду рад, если вы можете мне помочь.

Thanks

ответ

2

Лучший подход с искровым покрытием, как правило, является шкурой.

Там в зачаточном управление с помощью свойств, например, изменение выбранного цвета:

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

Ваш отредактированный вопрос по существу новый вопрос, на 100% отличающийся от того, что вы изначально задали. –

Смежные вопросы