DataGrid单元格中的Flex 3多色文本

时间:2011-12-14 17:20:12

标签: flex datagrid textcolor

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

当用户使用搜索过滤器时,我们希望在单元格中对与搜索短语匹配的文本进行着色和加粗。例如,用户使用搜索短语“Adjust”过滤一列作业标题,其中一个单元格值为“Claim Adjusters”,我们希望“Claim”和“ers”最后为黑色字体颜色和“调整“是另一种颜色(让我们说红色)。

我注意到,如果传递给DataGrid的String的格式为:

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

使用“<>”而不是“()”,粗体标签之间的文本以粗体显示,但不适用(font color = \“red \”)...(/ font)。
关于如何让搜索文本在这里变色以及加粗的任何建议?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

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

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

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