adobe flex datagrid 可选择列

发布于 2024-10-10 05:07:01 字数 638 浏览 2 评论 0原文

我正在尝试使用某种机制制作一个 Flex(高级)DataGrid 组件,用户可以在其中切换列的可见性。我通过将列读入右键单击菜单来粗略地实现了这一点,并且当在此处选择列名称时,可见性会被切换。它有效,但不是最优雅的解决方案。

具体来说,我正在尝试模拟 Mozilla Thunderbird 用于显示电子邮件的“数据网格”。这是一个图像:

thunderbird_datagrid.png

在右上角,滚动条上方有一个图标。如果没有滚动条,图标将保留在同一位置。单击该图标时,它会打开一个菜单,其中显示所有可能的列,可见的列旁边有一个复选标记,如下所示:

thunderbird_select_columns.png

另外,滚动条始终出现在该按钮下方,而不是将其“推”到其自己的列中。

我想在 Flex 中重新创建它。我相信菜单部分和创建带有按钮 headerRenderer 的列非常简单。但我无法弄清楚如何(如果可能的话)使用滚动条执行此操作,因为滚动条似乎总是“它自己的列”。任何想法或帮助将不胜感激。谢谢。

  • 伊恩

I'm trying to make a Flex (Advanced)DataGrid component with some mechanism where the user can toggle the visibility of the columns. I've crudely implemented this by reading in the columns into the right-click menu, and when a column name is selected here, the visibility is toggled. It works, but it's not the most elegant solution.

Specifically, I'm trying to emulate the "datagrid" that Mozilla Thunderbird uses to display emails. Here is an image:

thunderbird_datagrid.png

In the upper right, there is an icon over the scroll bar. If there is no scrollbar, the icon remains in the same place. When clicking the icon, it opens up a menu that shows all the possible columns, with the visible ones having a check mark next to them, like this:

thunderbird_select_columns.png

Also, the scroll bar always appears under this button, never "pushing" it over into it's own column.

I'd like to re-create this in Flex. I believe the menu part and creating a column with a button headerRenderer is easy enough. But I can't figure out how (if at all possible) to do this with the scrollbar, because the scrollbar always seems to be "its own column". Any ideas or help would be appreciated. Thank you.

  • Ian

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

茶色山野 2024-10-17 05:07:01

我想到了一种肮脏的解决方案。创建一个基于 Canvas 的组件,然后通过重写 createChildren 添加 AdvancedDataGrid。还要覆盖 updateDisplayList 并在 Canvas 的右上角添加一个类似于 Thunderbird 中的按钮。这将导致按钮出现在 DataGrid 上。问题解决了吗?

One dirty solution comes to mind. Create a component based on Canvas, then add an AdvancedDataGrid by overriding createChildren. Override updateDisplayList as well and add a button like the one in Thunderbird to the upper right of the Canvas. This will cause the button to appear over the DataGrid. Problemo solved?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文