在mx:AdvancedDataGrid flex中显示特殊字符

时间:2014-05-06 13:21:50

标签: flex flex4 advanceddatagrid

我正在尝试在 mx:AdvancedDataGridColumn 列中显示特殊字符作为值。例如,我试图用HTML代码显示复制权符号,商标和其他字符。

我想显示以下数据


特殊字符:¢©®™

以下html编码内容:

& lt; b& gt;特殊字符:& lt; / b& gt; &安培;分; &放大器;复制;&安培; REG; &安培;贸易;

截至目前, mx:AdvancedDataGridColumn 按原样显示数据。即显示标签(HTML编码的字符串)

示例代码: < mx:AdvancedDataGridColumn dataField =“htmlContent”>

这里HTML可以是任何东西。请提供如何执行此操作。

2 个答案:

答案 0 :(得分:1)

默认情况下,当您指定dataField属性时,Flex将尝试设置" text"默认AdvancedDataGridItemRenderer(它是TextField)的属性。为了显示html,您需要创建一个自定义项目渲染器,扩展AdvancedDataGridItemRenderer,并覆盖"设置数据"函数,然后设置htmlText属性。

另见http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/text/TextField.html#htmlText,不支持某些HTML实体。

答案 1 :(得分:0)

我将Delta符号设置为DataGrid的列标题,如此

<s:DataGrid width="100%" height="100%" rowHeight="43"
            sortableColumns="false"
            color="0x929698"
            borderVisible="false"
            dataProvider="{model.gridOperationDataCollection}">
    <s:columns>
        <s:ArrayList>
            <s:GridColumn> headerRenderer="ru.prognoz.iup.renderers.OperationIndGridHRDelta"/>
        </s:ArrayList>
    </s:columns>

OperationIndGridHRDelta

<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"
                minWidth="21" minHeight="21">

<mx:Text htmlText="\u0394 {label}"
         color="0xA2ACB2"
         verticalCenter="0" horizontalCenter="0"
         fontSize="12" fontFamily="Arial"
        />