Flex DataGrid不希望出现DataTip

时间:2013-01-14 06:56:06

标签: actionscript-3 flex datagrid tooltip flex4.6

附上你会发现一个小项目来展示这个问题,拉链中也有一个屏幕显示。 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

谢谢你们。

1 个答案:

答案 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>