附上你会发现一个小项目来展示这个问题,拉链中也有一个屏幕显示。 http://imageshack.us/photo/my-images/21/screenhunter50jan140842.jpg/
上传[URL = http://imageshack.us] ImageShack.us [/ URL]
- 当您不断刷新 datagrid / advanceddatagrid 的 dataProvider 时,会显示不需要的数据提示。
- 在屏幕截图中,您可以在高级数据网格的第一列上看到鼠标光标。并显示工具提示。
- 代码中第一列的showDataTips="false"
。
- 在常规数据网格上也是如此。 (虽然有时工具提示只是闪烁)
- MX没问题。
链接到演示项目:https://dl.dropbox.com/u/5516677/Datatip%20issue.7z
谢谢你们。
答案 0 :(得分:1)
我发现了问题。这正是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>