2010-01-20 60 views

回答

5

我的建議是使用您的數據提供者的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"]; 
} 
+0

太棒了,那有效!我不知道這是這麼簡單:) – 2010-01-20 16:29:59

+0

很高興我能幫忙! – Dan 2010-01-20 18:03:29