【问题标题】:How to get a <div> tag htmlText to wrap inside an AdvancedDataGridColumn如何让 <div> 标记 htmlText 包含在 AdvancedDataGridColumn 中
【发布时间】: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


【解决方案1】:

Text 组件中的 HTML 可能性非常有限。您无法在其中添加 div 标签。对于您遇到的问题 - 我会说您需要在自定义渲染器中的 Text 组件或 AdvancedDatagridColumn 上设置固定宽度。 抱歉,最后一个关于空白的问题没有让您回答。可以举例说明吗?

【讨论】:

  • 关于空白,我的意思是 div 标签将在它们之间显示额外的空白行 (\n)。我希望结果尽可能简洁,以尽量减少滚动。
【解决方案2】:

我想出了第一部分。看起来单元格内的 Text 对象比单元格大,所以即使它“包裹”了文本,它也认为它有足够的空间。

添加一个

myText.percentWidth=100;
myText.percentHeight=100;

设置数据函数解决了这个问题。

【讨论】:

    猜你喜欢
    • 2014-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-26
    • 1970-01-01
    • 2014-10-22
    • 2011-01-22
    相关资源
    最近更新 更多