2009-12-21 79 views
0

我有一个flex数据网格,有4列。我有一个带有4个复选框的组合框,包含datagrid的列名作为它的标签。我希望datagrid仅显示那些在combobox.Can任何人都可以告诉我如何过滤datagrid中的列?使用CheckBox过滤flex数据网格中的列

在此先感谢。

回答

1

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

<mx:DataGrid id="dg" /> 

在ActionScript代码

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

在你的情况,你可以容纳列的主列表在一个单独的阵列,并推动他们到数据网格,用户检查和未检查他们列表在您的组合框。

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

HTH

+0

非常感谢西蒙。 我还有一个问题。我怎样才能得到选中的checkBox标签(它存在于comboBox里面),这样我就可以与列名进行比较,只显示名称与所选复选框匹配的列。 – Anupama 2009-12-22 03:29:39

+0

与此我不得不看你用来填充组合框的代码。原则上,您可以使用列列表来填充组合框,然后当您检索selectedItem属性时,您将拥有DataGridColumn对象。但是,这意味着你要创建一个主列表。 – Simon 2009-12-22 07:40:16