我正在尝试使用某种机制创建Flex(高级)DataGrid组件,用户可以在其中切换列的可见性。我通过在右侧菜单中的列中读取粗略地实现了这一点,并且在此处选择列名称时,切换可见性。它有效,但它不是最优雅的解决方案。
具体来说,我试图模仿Mozilla Thunderbird用来显示电子邮件的“datagrid”。这是一张图片:
在右上角,滚动条上方有一个图标。如果没有滚动条,则图标保留在同一位置。单击该图标时,它会打开一个菜单,显示所有可能的列,其中可见的列旁边有一个复选标记,如下所示:
此外,滚动条始终显示在此按钮下方,永远不会将其“推”到它自己的列中。
我想在Flex中重新创建它。我相信菜单部分和使用按钮headerRenderer创建一个列很容易。但我无法弄清楚如何(如果可能的话)使用滚动条执行此操作,因为滚动条似乎总是“它自己的列”。任何想法或帮助将不胜感激。谢谢。
答案 0 :(得分:1)
想到了一个肮脏的解决方案。基于Canvas创建组件,然后通过覆盖createChildren添加AdvancedDataGrid。同时覆盖updateDisplayList,并在“画布”的右上角添加类似Thunderbird中的按钮。这将导致按钮显示在DataGrid上。问题解决了吗?