DataGrid的過濾

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

          在filter input 輸入字符,可對DataGrid進(jìn)行過濾。道理很簡單,就是利用自定義的filterFunction給DataGrid進(jìn)行過濾。

          直接來看代碼

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

          主站蜘蛛池模板: 云阳县| 津市市| 尼木县| 六安市| 睢宁县| 彝良县| 托克逊县| 泽库县| 五原县| 永安市| 东乡县| 习水县| 上思县| 日喀则市| 岳池县| 吉木萨尔县| 湖南省| 义马市| 喀喇沁旗| 林西县| 色达县| 长乐市| 睢宁县| 霸州市| 交口县| 三台县| 永春县| 九龙城区| 珲春市| 凤冈县| 巴林左旗| 思南县| 徐水县| 惠安县| 简阳市| 宕昌县| 治多县| 台湾省| 乌拉特中旗| 垦利县| 钟祥市|