1

附上你会发现一个小项目来显示问题,zip 中还有一个屏幕显示。 http://imageshack.us/photo/my-images/21/screenhunter50jan140842.jpg/

使用 [URL=http://imageshack.us]ImageShack.us[/URL] 上传 - 当您不断刷新datagrid/advanceddatagrid的dataProvider时,会显示不需要的数据提示。- 在屏幕截图中,您可以看到鼠标光标位于高级数据网格的第一列。并显示一个工具提示。- 在第一列的代码中。- 在常规数据网格上也是如此。(虽然有时工具提示只是闪烁) - MX 没有问题。showDataTips="false"

演示项目链接:https ://dl.dropbox.com/u/5516677/Datatip%20issue.7z

感谢你们。

4

1 回答 1

1

我发现了问题。这正是 flex 的错误。当 DataGrid 的 dataProvider 发生变化时,渲染器被缓存中的其他渲染器替换,但工具提示仍然来自之前的渲染器,现在是不可见的。我提出一个解决方法。我刚刚为渲染器覆盖了工具提示设置器以检查其可见性。

<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>
于 2013-01-25T10:56:05.667 回答