Для отображения текста в формате HTML в AdvancedDataColumn я использую пользовательский рендерер, который является объектом mx: Text.Я устанавливаю myText.htmlText на что-то вроде «тестовый текст, который действительно намного длиннее ширины столбца».Независимо от того, какие свойства я установил, текст просто выходит за пределы конца столбца.
Я пробовал wordWrap = "true" в сетке данных, а также в каждом отдельном столбце.Я также пытался связываться с css и пытался применить его к текстовому полю, но ничего не появляется.Кто-нибудь смог обернуть htmlText в текстовый объект?
Также, но чуть менее важно, после каждого тега есть лишние пустые строки, от которых я бы хотел избавиться.
- Правка - добавлен код рендерера.
<?xml version="1.0"?>
<!-- itemrenderers/sparkmx/myComponents/SummaryRenderer.mxml -->
<s:MXAdvancedDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:s="library://ns.adobe.com/flex/spark"
textAlign="center">
<fx:Script>
<![CDATA[
import mx.controls.advancedDataGridClasses.AdvancedDataGridListData;
override public function set data(value:Object):void
{
// help for style sheets
//http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/text/StyleSheet.html
//create and initialize css
var myCSS:StyleSheet = new StyleSheet();
myCSS.setStyle("p", {textAlign:'left'});
// TODO try wordwrap here.
myCSS.setStyle("div", {textAlign:'left'});
//ensure html support and apply css to it
myText.styleSheet = myCSS;
// if the value is null, it would throw an error.
if (AdvancedDataGridListData(listData) != null) {
myText.htmlText = value[AdvancedDataGridListData(listData).dataField];
}
}
]]>
</fx:Script>
<mx:Text id="myText"/>
</s:MXAdvancedDataGridItemRenderer>