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"/>