zoukankan      html  css  js  c++  java
  • Sorting and filtering data in an XMLListCollection

    The following code is a brief example of sorting a Flex XMLListCollection using the Sort and SortField classes, and the XMLListCollection.sort property. We also look at filtering the XMLCollection using a custom filter function.
    <?xml version="1.0" encoding="utf-8"?>
    <!-- http://blog.flexexamples.com/2007/08/22/sorting-and-filtering-data-in-an-xmllistcollection/ -->
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
            layout
    ="vertical"
            verticalAlign
    ="middle"
            backgroundColor
    ="white"
            creationComplete
    ="init()">

        
    <mx:Script>
            
    <![CDATA[
                import mx.collections.SortField;
                import mx.collections.Sort;
                import mx.controls.*;

                private function init():void {
                    describeTypeXML = describeType(DataGrid);
                    factoryMethodsXLC.source = describeTypeXML.factory.method;
                }

                private function sortXLC():void {
                    var nameSort:Sort = new Sort();
                    nameSort.fields = [new SortField('@name', true)];

                    factoryMethodsXLC.sort = nameSort;
                    factoryMethodsXLC.refresh();
                }

                private function filterXLC():void {
                    if (filterCh.selected) {
                        factoryMethodsXLC.filterFunction = declaredBy_filterFunc;
                        factoryMethodsXLC.refresh();
                    } else {
                        factoryMethodsXLC.filterFunction = null;
                        factoryMethodsXLC.refresh();
                    }
                }

                private function declaredBy_filterFunc(item:XML):Boolean {
                    return item.@declaredBy == describeTypeXML.@name;
                }
            
    ]]>
        
    </mx:Script>

        
    <mx:XML id="describeTypeXML" />

        
    <mx:XMLListCollection id="factoryMethodsXLC" />

        
    <mx:VBox>
            
    <mx:DataGrid id="factoryMethodsGrid"
                    dataProvider
    ="{factoryMethodsXLC}"
                    width
    ="400"
                    rowCount
    ="7">
                
    <mx:columns>
                    
    <mx:DataGridColumn dataField="@name" />
                    
    <mx:DataGridColumn dataField="@returnType" />
                    
    <mx:DataGridColumn dataField="@declaredBy" />
                
    </mx:columns>
            
    </mx:DataGrid>
            
    <mx:HBox width="100%">
                
    <mx:Button id="sortBtn"
                        label
    ="Sort ({factoryMethodsGrid.dataProvider.length} items)"
                        click
    ="sortXLC()" />
                
    <mx:Spacer width="100%" />
                
    <mx:CheckBox id="filterCh"
                        label
    ="{describeTypeXML.@name} only"
                        click
    ="filterXLC()" />
            
    </mx:HBox>
        
    </mx:VBox>

    </mx:Application>

  • 相关阅读:
    【组合数学】AGC036C
    【数位贪心】loj#530. 「LibreOJ β Round #5」最小倍数
    【概率dp】vijos 3747 随机图
    【线段树 经典技巧】10.7序列绝对值
    【杂题】10.7爬树
    【组合数学 思维题】10.6种树
    【换根dp】9.22小偷
    【高维前缀和】8.15B. 组合数
    【技巧 dp】1566: [NOI2009]管道取珠
    【经典dp 技巧】8.13序列
  • 原文地址:https://www.cnblogs.com/taobataoma/p/1034065.html
Copyright © 2011-2022 走看看