1
我有一個ArrayCollection作爲其dataProvider AdvancedDataGrid。例如,我有一個CheckBox,它允許我顯示或隱藏AdvancedDataGrid中的某些行。Flex:如何隱藏AdvancedDataGrid中的一行?
任何想法我可以做到這一點?
我有一個ArrayCollection作爲其dataProvider AdvancedDataGrid。例如,我有一個CheckBox,它允許我顯示或隱藏AdvancedDataGrid中的某些行。Flex:如何隱藏AdvancedDataGrid中的一行?
任何想法我可以做到這一點?
我的建議是使用您的數據提供者的filterFunction
屬性。基本上,你可以給你的數據提供者一個函數來決定ArrayCollection中的給定項是否被排除(如果一個項目被排除了,它將不會顯示在AdvancedDataGrid中,實質上是「不可見」)。可以找到filterFunction
的文檔here。
然後我建議檢查複選框在數據提供程序中設置對象的屬性,然後過濾器函數使用該屬性來包含/排除行。一些(非常粗糙的)僞代碼如下:
private function checkboxClickHandler(event:MouseEvent):void
{
/*
Based on the MouseEvent, determine the row
in the data grid you're dealing with
*/
myDataProvider[someIndex].checkboxFlag = myCheckBox.selected;
myDataProvider.refresh(); // calling refresh() re-applies the filter to
// account for changes.
}
private function myDataProviderFilterFunction(item:Object):Boolean
{
// assuming we want the item to be filtered if checkboxFlag is true
return !item["checkboxFlag"];
}
太棒了,那有效!我不知道這是這麼簡單:) – 2010-01-20 16:29:59
很高興我能幫忙! – Dan 2010-01-20 18:03:29