2009-12-21 78 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