Flex - 在DataGrid上的内联渲染器内的复选框上禁用工具提示?

时间:2011-02-03 16:46:43

标签: flex datagrid checkbox tooltip itemrenderer

您好我正在尝试从数据网格中的内联itemrenderer中的复选框中删除工具提示,但我仍然得到工具提示框但其中没有任何内容。我想完全删除工具提示框。这就是我所拥有的

<mx:DataGrid dataProvider="{s}" width="80%" id="sdg">
        <mx:columns>
            <mx:DataGridColumn width="14" paddingLeft="2" paddingRight="2" showDataTips="false">
                <mx:itemRenderer>
                    <mx:Component>
                        <mx:CheckBox change="data.selected = !data.selected; dispatchEvent(new Event('clickCheckbox',true,true))" 
                            selectedField="selected" toolTip="{null}"/>
                    </mx:Component>

                </mx:itemRenderer>
            </mx:DataGridColumn>
</mx:columns>
</mx:Datagrid>

2 个答案:

答案 0 :(得分:2)

感谢代码起点使得回答这些更容易,对于未来虽然我怀疑世界会听到这个请求请包括您使用的Flex版本,因为像Android一样有很多碎片,这里有用的我:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
                layout="absolute"
                minWidth="955"
                minHeight="600">
    <mx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
        ]]>
    </mx:Script>
    <mx:DataGrid id="sdg"
                 dataProvider="{new ArrayCollection([{label:'selected',data:{selected:true}},{label:'test',data:{selected:true}},{label:'case',data:{selected:true}}])}"
                 width="50">
        <mx:columns>
            <mx:DataGridColumn width="14"
                               paddingLeft="2"
                               paddingRight="2"
                               showDataTips="false">
                <mx:itemRenderer>
                    <mx:Component>
                        <mx:CheckBox change="data.selected = !data.selected; dispatchEvent(new Event('clickCheckbox',true,true))"
                                     selectedField="selected"
                                     label="{data.label}"
                                     mouseOver="checkbox1_mouseOverHandler(event)">
                            <mx:Script>
                                <![CDATA[
                                    protected function checkbox1_mouseOverHandler(event:MouseEvent):void
                                    {
                                        // TODO Auto-generated method stub
                                        event.stopImmediatePropagation();
                                    }
                                ]]>
                            </mx:Script>
                        </mx:CheckBox>

                    </mx:Component>

                </mx:itemRenderer>
            </mx:DataGridColumn>
        </mx:columns>
    </mx:DataGrid>
</mx:Application>

我在那里添加了一些虚拟数据,并且必须减小网格的大小以使其在显示工具提示之前截断复选框,然后我验证了您在上面发布的内容,使其无效。上面我捕获mouseover事件并阻止它传播到ToolTipManager,或者你可以调用ToolTipManager.enable = false然后在适当时设置回true。

答案 1 :(得分:0)

我尝试了你的代码,我没有工具提示。您可以尝试ToolTipManager.enabled = false;,但它会关闭所有工具提示。