2011-12-01 57 views
0

我有一个高级数据网格,其中列为状态,已启用,所有者,名称。Flex中高级数据网格工具提示

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

回答

2

你需要创建一个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)"

+0

垫: - !applicableToolTip抛出空对象引用错误时的状态不是 '适用'。 – Ravikanth

+0

这很有意义,因为工具提示永远不会为其他状态类型创建。只需要在破坏工具提示中检查它。我已经更新了这个例子。 –

1

如果不需要TooTip Manager,则可以使用dataTip函数来构造消息并将displayToolTip列的属性设置为true

0

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

例如:

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

如果您的XML项目看起来像:

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