我發現了這個問題。這正是flex的錯誤。當DataGrid的dataProvider發生更改時,渲染器將被緩存中的其他渲染器替換,但工具提示仍保留在先前的渲染器上,而此渲染器現在不可見。 我提出了一種解決方法。我剛剛渲染了渲染器的toolTip setter以檢查其可見性。
<mx:AdvancedDataGrid id="secoind" left="300" top="20" width="200" height="200" dataProvider="{dta}" showDataTips="false">
<mx:groupedColumns >
<mx:AdvancedDataGridColumnGroup >
<mx:AdvancedDataGridColumn dataField="name" headerText="Name" showDataTips="false">
<mx:itemRenderer>
<fx:Component>
<mx:AdvancedDataGridItemRenderer>
<fx:Script>
<![CDATA[
override public function set toolTip(value:String):void
{
super.toolTip = visible ? value : null;
}
]]>
</fx:Script>
</mx:AdvancedDataGridItemRenderer>
</fx:Component>
</mx:itemRenderer>
</mx:AdvancedDataGridColumn>
<mx:AdvancedDataGridColumn dataField="text" headerText="Text" showDataTips="true"/>
</mx:AdvancedDataGridColumnGroup>
</mx:groupedColumns>
</mx:AdvancedDataGrid>