【问题标题】:Flex 3 Multicolored Text in DataGrid CellDataGrid单元格中的Flex 3多色文本
【发布时间】:2011-12-14 17:20:12
【问题描述】:

我在为 DataGrid 中的单个单元格设置样式时遇到问题。我想浏览 DataGrid 单元格中的文本,并且只为文本的特定部分着色。

当用户使用搜索过滤器时,我们希望将单元格中与搜索短语匹配的文本着色并加粗。例如,用户使用搜索短语“Adjust”过滤一列职位,其中一个单元格值为“Claim Adjusters”,我们希望末尾的“Claim”和“ers”为黑色字体颜色,而“调整”为另一种颜色(比如说红色)。

我注意到,如果传递给 DataGrid 的字符串是以下形式:

value.substring(0,start) + "(b)" + value.substring(start,finish) + "(/b)" + value.substring(finish);

使用“”而不是“()”,粗体标签之间的文本会以粗体字体显示,但它不适用于 (font color=\"red\") ... (/font ).
关于如何让搜索文本在此处着色和加粗的任何建议?

【问题讨论】:

    标签: apache-flex datagrid textcolor


    【解决方案1】:
    【解决方案2】:

    一个具有很大灵活性的简单替代方法是让您的 itemRendrer 支持 html 格式:

    public class HtmlItemRenderer extends DataGridItemRenderer {
        override public function validateProperties():void {
            super.validateProperties();
            if (text.indexOf('<') > -1) {
                htmlText = text;
            }
        }
    }
    

    条件不需要非常严格,它仍然会为大多数不包含标记的单元格节省一些周期。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-12
      • 1970-01-01
      • 2011-01-29
      • 1970-01-01
      • 1970-01-01
      • 2011-09-17
      • 2011-01-31
      • 1970-01-01
      相关资源
      最近更新 更多