DataGrid中搜索并自动滚屏到匹配项

本文介绍了一个使用Adobe Flex构建的应用实例,通过HTTPService从XML文件加载数据,并使用DataGrid显示房屋销售记录。应用提供了城市搜索功能,能够根据用户输入的城市名称快速定位和展示相关数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="initApp()"> <mx:HTTPService id="srv" url="assets/homesforsale.xml" resultFormat="object" result="onResult(event)"/> <mx:Form> <mx:FormItem label="Search"> <mx:TextInput id="search_ti"/> </mx:FormItem> <mx:FormItem> <mx:Button label="Search City" click="searchCity()"/> </mx:FormItem> </mx:Form> <mx:DataGrid id="grid" width="300" height="150" editable="true" dataProvider="{homesForSale}"> <mx:columns> <mx:DataGridColumn headerText="Total No." dataField="total"/> <mx:DataGridColumn headerText="City" dataField="city"/> <mx:DataGridColumn headerText="State" dataField="state"/> </mx:columns> </mx:DataGrid> <mx:Script> <!--[CDATA[ import mx.collections.SortField; import mx.collections.Sort; import mx.collections.IViewCursor; import mx.events.FlexEvent; import mx.collections.ArrayCollection; import mx.rpc.events.ResultEvent; [Bindable] private var homesForSale:ArrayCollection; private var cursor:IViewCursor; private function initApp():void { this.srv.send(); } private function onResult(evt:ResultEvent):void { var sort:Sort=new Sort(); sort.fields=[new SortField("city", true)]; this.homesForSale=evt.result.data.region; this.homesForSale.sort=sort; this.homesForSale.refresh(); this.cursor=this.homesForSale.createCursor(); //注意你可以赋值Sort 对象给定义了ArrayCollection,dataProvider 数据项city 属性作为可排 //序字段。这是因为IViewCursor 的findFirst 和其他查找方法只可以被可排序视图所调用。 } private function searchCity():void { if (search_ti.text != "") { //这个方法中,用户输入的city 名称作为IViewCursor 的findFirst 方法的搜索参数。当找到 //ArrayCollection 中的匹配项时该方法返回true 并更新游标对象的current 属性,指向匹配项。 //当匹配项被找到后,ArrayCollection 的getItemIndex 方法指出匹配项的具体位置,最后 //DataGrid 使用scrollToIndex 方法滚屏到匹配位置,selectedItem 属性被设置为匹配项。 //注意参数的括号 if (this.cursor.findFirst({city: search_ti.text})) { var idx:int=this.homesForSale.getItemIndex(this.cursor.current); this.grid.scrollToIndex(idx); this.grid.selectedItem=this.cursor.current; } } } ]]--> </mx:Script> </mx:Application>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值