【问题标题】:Filter columns in flex datagrid using CheckBox使用 CheckBox 过滤 flex 数据网格中的列
【发布时间】:2010-12-28 17:40:05
【问题描述】:

我有一个带有 4 列的 flex 数据网格。我有一个带有 4 个复选框的组合框,其中包含数据网格的列名作为其标签。我希望数据网格仅显示在组合框中选择的那些列。谁能告诉我如何可以对datagrid中的列进行这种过滤吗?

提前致谢。

【问题讨论】:

    标签: apache-flex datagrid combobox filter


    【解决方案1】:

    您可以使用.columns 属性操作附加到数据网格的列。请记住,此方法是一个 getter,并向您返回数据网格上列列表的副本,因此如果您操作其内容,则必须使用等效的 setter 将这些更改应用回数据网格,例如

    <mx:DataGrid id="dg" />
    

    在 ActionScript 代码中

    var columns:Array = dg.column;
    columns.push(new DataGridColumn("hello"));
    dg.columns = columns;
    

    在您的情况下,您可以将列的主列表保存在一个单独的数组中,并在用户从您的组合框中的列表中检查和取消选中它们时将它们推送到数据网格中。

    或者,您可以遍历列列表以查找在您的组合框中选中的列,并相应地设置它们的 .visible 属性。

    HTH

    【讨论】:

    • 非常感谢西蒙。我还有一个问题。如何获取选定的复选框标签(存在于组合框中),以便我可以与列名进行比较并仅显示名称与选定复选框匹配的那些列
    • 为了帮助解决这个问题,我必须查看用于填充组合框的代码。原则上,您可以使用列列表来填充组合框,然后当您检索 selectedItem 属性时,您将拥有 DataGridColumn 对象。但是,这意味着您要创建一个主列表。
    猜你喜欢
    • 1970-01-01
    • 2011-07-05
    • 2010-09-15
    • 1970-01-01
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    • 2018-08-06
    • 2014-04-14
    相关资源
    最近更新 更多