`
isiqi
  • 浏览: 16053053 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Flex AdvancedDataGrid表格过滤

阅读更多

AdvancedDataGrid过滤,本质上是其数据源(DataProvider)的过滤,通常来说表格的DataProvider2种数据源:HierarchicalData和平面数据ArrayCollection。因此,表格过滤就是HierarchicalDataArrayCollection的过滤。

1ArrayCollection的过滤

ArrayCollection的过滤,相对来说比较简单,ArrayCollection自带filterFunction函数,因此只要设置filterFunction即可实现ArrayCollection的过滤。

关于filterFunction函数如何使用,大家完全可以参考Adobe的参考手册。

f(item:Object):Boolean

如果指定的项目应保留在视图中,则返回值为 true

如果滤镜是不支持的滤镜,则在访问此属性时 Flex 会引发错误。必须在设置 filterFunction 属性后调用 refresh() 以更新视图。

2HierarchicalData的过滤

HierarchicalData,其source通常来说是ArrayCollection,本文假设HierarchicalData.source就是ArrayCollection。既然HierarchicalData过滤,也是ArrayCollection的过滤,因此只要判断AdvancedDataGrid.dataprovider是否为HierarchicalData,即可进行HierarchicalDataArrayCollection的过滤。

下述为一个简单的Demo

<!-- arrayCollection ArrayCollection -->

<mx:AdvancedDataGrid id="adg1" designViewDataType="flat" left="4" top="39" bottom="4" right="4" creationComplete="adg1_creationCompleteHandler(event)"

horizontalScrollPolicy="auto" verticalScrollPolicy="auto" selectionMode="singleRow">

<mx:dataProvider>

<mx:GroupingCollection2 id="groupingCollection2" source="{arrayCollection}">

<mx:Grouping>

<mx:GroupingField name="mark">

<mx:summaries>

<mx:SummaryRow summaryPlacement="group">

<mx:fields>

<mx:SummaryField2 dataField="inventoryvalue"

label="sum mark inventoryvalue" summaryOperation="SUM"/>

<mx:SummaryField2 dataField="inventory"

label="sum mark inventory" summaryOperation="SUM"/>

<mx:SummaryField2 dataField="outlets"

label="sum mark outlets" summaryOperation="SUM"/>

</mx:fields>

</mx:SummaryRow>

</mx:summaries>

</mx:GroupingField>

表格adg1dataProviderGroupingCollection2,就是HierarchicalData,我们可以通过下述方法进行过滤,假设filterFunctonfilterFunc

if(adg1.dataProvider.source is HierarchicalData){

_datagrid.dataProvider.source.source.filterFunction = filterFunc;

adg1.dataProvider.source.source.refresh();

adg1.dataProvider.source.refresh();

}else{

adg1.dataProvider.filterFunction = filterFunc;

adg1.dataProvider.refresh();

}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics