【发布时间】:2011-09-01 17:42:29
【问题描述】:
为了在 AdvancedDataColumn 中显示 HTML 格式的文本,我使用了一个自定义渲染器,它是一个 mx:Text 对象。我将 myText.htmlText 设置为“测试文本实际上比列宽长很多”。不过,无论我设置什么属性,文本都会超出列的末尾。
我在 dataGrid 以及每个单独的列上都尝试了 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>
【问题讨论】:
-
显示您的渲染器代码。
标签: html css apache-flex advanceddatagrid