DataGrid的过滤

通过在Filter Input中输入字符,转换成小写后查询所有字段中所包含的输入字段。

 根据此例可指定列过滤。

 DataGrid的过滤 - 阿蔡 - 古越之地

在filter input 输入字符,可对DataGrid进行过滤。道理很简单,就是利用自定义的filterFunction给DataGrid进行过滤。

直接来看代码

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" xmlns:local="*" backgroundColor="#999999">

      <mx:Script>

            <![CDATA[

                  import mx.collections.XMLListCollection;

                  [Bindable]

                  private var resultText:String = "Result(s)";

                  private var xml:XML = <root>

                                                <c firstName="Michael" lastName="Scofield" address="Fox river"/>

                                                <c firstName="Lincoln" lastName="Burrows" address="Sona"/>

                                                <c firstName="Fernando" lastName="Sucre" address="Boston"/>

                                                <c firstName="Theodore T-Bag" lastName="Bagwell" address="Houston"/>

                                                <c firstName="Veronica" lastName="Donovan" address="New York"/>

                                                <c firstName="Henry" lastName="Pope" address="Miami"/>

                                                <c firstName="LJ" lastName="Burrows" address="Phoenix"/>                                                                 </root>;

                 

                  [Bindable]

                  private var dp:XMLListCollection = new XMLListCollection(xml.children());

                 

                  private function textChangeHandler():void{

                        if(textInput.length==0)

                        {

                              dp.filterFunction = null;

                        }

                        else

                        {

                              dp.filterFunction = filterFunction;

                        }

                        dp.refresh();

                        resultText = dp.length + " Result(s)";

                  }

                 

          /* 循环所有行和列 */

                  private function filterFunction(item:Object):Boolean

                  {          

                        var searchString:String = textInput.text.toLocaleLowerCase();                      

                        var tempString : String;

                        for(var j:int = 0; j<apps.columns.length;j++) {

                              tempString = String (item[apps.columns[j].dataField]);                             

                              if(tempString.toLocaleLowerCase().indexOf(searchString)>-1) return true;

                        }                

                        return false;

                  }

            ]]>

      </mx:Script>

      <mx:HBox width="100%">

            <mx:Label text="Filter Input:"/>

            <mx:TextInput id="textInput" change="textChangeHandler()"/>

            <mx:Spacer width="100%"/>

            <mx:Label text="{resultText}"/>          

      </mx:HBox>

      <mx:DataGrid id="apps" dataProvider="{dp}" width="100%">

            <mx:columns>

                  <mx:DataGridColumn dataField="@firstName" headerText="First_Name"/>

                  <mx:DataGridColumn dataField="@lastName" headerText="Last_Name"/>

                  <mx:DataGridColumn dataField="@address" headerText="Address"/>

            </mx:columns>

      </mx:DataGrid>     

</mx:Application>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值