<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" width="100" height="100%">
<mx:DataGrid id="dataGrid" height="100%" width="100"
dataProvider="{new Array()}"
>
<mx:columns>
<mx:DataGridColumn headerText="TASK" dataField="TASK"/>
</mx:columns>
</mx:DataGrid>
<fx:Declarations>
</fx:Declarations>
<fx:Script>
<![CDATA[
private var _selectedItem:Object = null;
private var _filteredDataProvider:Array = new Array();
/** sets a filtered dataprovider where elements have a property called ["hide"]
* which is false or true and depending on this passed on to the dataProvider of
* the dataGrid, allowing to hide certain values, without deleting them. **/
public function set filteredDataProvider(ARRAY:Array):void
{
_selectedItem = dataGrid.selectedItem;
if(ARRAY == null)
{
return;
}
_filteredDataProvider = new Array();
for each(var ELEMENT:Object in _dataProvider)
{
if(!ELEMENT["hide"] || !(ELEMENT.hasOwnProperty("hide")))
{
this._filteredDataProvider.push(ELEMENT);
}
}
dataGrid.dataProvider = _filteredDataProvider;
dataGrid.selectedItem = _selectedItem;
}
public function get filteredDataProvider():Array
{
return _filteredDataProvider;
}
private var _dataProvider:Array = new Array();
public function set dataProvider(ARRAY:Array):void
{
_dataProvider = ARRAY;
}
public function get dataProvider():Array
{
return _dataProvider;
}
]]>
</fx:Script>
</s:Group>