DataGrid的過濾

          Posted on 2009-02-20 15:44 追夢人 閱讀(295) 評論(0)  編輯  收藏 所屬分類: flex

          在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>

          主站蜘蛛池模板: 金川县| 曲靖市| 木里| 任丘市| 崇文区| 鹤山市| 繁峙县| 滨州市| 四川省| 修文县| 巴青县| 柏乡县| 吐鲁番市| 兖州市| 龙南县| 上犹县| 平和县| 绩溪县| 和田市| 全州县| 铜陵市| 玛曲县| 湖南省| 长宁区| 陆良县| 静乐县| 南充市| 焦作市| 扎囊县| 仙居县| 龙门县| 历史| 崇义县| 遂宁市| 崇信县| 基隆市| 饶阳县| 南皮县| 浮山县| 中西区| 台南县|