Flex中高级datagrid列的工具提示

时间:2011-12-01 14:22:47

标签: actionscript-3 flex flex4 flex3

我有一个高级数据网格,其中列为status,enabled,owner,name。

我将获取状态数据为“适用”或“成功”或“失败”。 当状态变为“适用”时,我必须在将鼠标移到那里时显示工具提示。你能帮我解决一下怎么做吗?

3 个答案:

答案 0 :(得分:3)

您需要创建一个GridItemRenderer,这里有一些示例代码放在自定义GridItemRenderer的脚本块中:

import mx.controls.ToolTip;
import mx.core.IUIComponent;
import mx.managers.ToolTipManager;

public var applicableToolTip:ToolTip;

private function createToolTip(event:Event):void {
    if (data["status"] == "applicable") {
        var stagePoint:Point = event.target.localToGlobal(new Point(event.target.x, event.target.y));
        applicableToolTip = ToolTipManager.createToolTip(
            "Your applicable message here",
            stagePoint.x,
            stagePoint.y,
            null,
            IUIComponent(event.currentTarget)
        ) as ToolTip;
    }
}

private function destroyToolTip(event : Event) : void {
    if (applicableToolTip != null)
        ToolTipManager.destroyToolTip(applicableToolTip);
}

然后在渲染器的标签字段中添加属性rollOver="createToolTip(event)"rollOut="destroyToolTip(event)"

答案 1 :(得分:1)

如果不需要TooTip Manager,那么您可以使用dataTip函数构建邮件,并将列的displayToolTip属性设置为true

答案 2 :(得分:1)

如果您的工具提示位于xml数据中,则可以在dataTipField上指定DataGridColumn

例如:

var col:DataGridColumn = new DataGridColumn();
col.dataTipField = "@statusTooltip";
col.showDataTips = true;

如果你的xml项看起来像:

<item id="..." status="applicable" statusTooltip="My tootlip text"/>