如何通过Flex组合框来过滤DataGrid

小编给大家分享一下如何通过Flex组合框来过滤DataGrid,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站制作、成都网站制作、河南网络推广、重庆小程序开发公司、河南网络营销、河南企业策划、河南品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供河南建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com

通过Flex组合框来过滤DataGrid

Flex中一个很普遍的应用就是用Flex组合框过滤显示在DataGrid中的数据。在这个技巧里,目的是把一个“作者”数据库表里的数据显示到DataGrid里,表的结构如下:

CODE:

authorId:String;  authorName:String;  status:String;

◆另外,用户可以选择Flex组合框中包含的不同的作者状态的值来过滤DataGrid显示的作者信息。推荐你把从服务器请求获得的结果转换为ArrayCollection,然后把这个ArrayCollection作为DataGrid的dataProvider。这样做你会发现操作和过滤显示的数据会很变得容易。获取数据超出了现在这个技巧的范围,不过关于这个问题有很多的例子可以参考。

首先,把结果转换为ArrayCollection。

CODE:

importmx.utils.ArrayUtil;   importmx.collections.ArrayCollection;   //event.resultcontainsthedatafromtheauthorssearch.   publicvarauthorsArray:Array=mx.utils.ArrayUtil.toArray(event.result);   //UseauthorsDataProviderasthedataProviderforthedataGrid.   [Bindable]   publicvarauthorsDataProvider:ArrayCollection=newArrayCollection(authorsArray);

◆接下来,把搜索结果中的作者状态值动态加载到Flex组合框中。在这里,数据库中可能的作家状态值是"Active","Inactive"和"Deleted"。但是在进行之前,让我们来回顾一下用例。我们把搜索作者得到的结果通过DataGrid视图向用户显示出来,在看过之后,用户可能希望过滤这些数据让它只显示“Active”的作者。当然,Flex组合框中的"Active","Inactive"和"Deleted"可以直接硬编码,但是如果那样做的话,当数据库中添加了一个新的状态值得时候我们必须修改程序。

而且,Flex组合框中的值应该只包含搜索结果中的作者状态,如果搜索结果只包含状态为"Active"和"Inactive"的作者,Flex组合框应该只包含相应的值(没有”Delete”)。如果所有数据库中可能的作者状态值都在Flex组合框中硬编码,用户就可以选择”Delete”这个值,然后就会看到一个没有任何数据的DataGrid。我们不想困扰用户,所以接下来的代码会动态加载作者状态值到一个数组,然后把这个数组作为Flex组合框的dataProvider。

CODE:

//UsetheauthorsStatusArrayasthedataProviderfortheCombox.   [Bindable]  publicvarauthorsStatusArray:Array=populateAuthorsStatusArray(authorsArray);   publicfunctionpopulateAuthorsStatusArray(authorsArray:Array):Array  {  varstatusArrayHashMap:Object=newObject();  varstatusArray:Array=newArray;   varn:int=authorsArray.length;  for(vari:int=0;i<n;i++)  {  if(statusArrayHashMap[authorsArray[i].status]==undefined)  {  statusArrayHashMap[authorsArray[i].status]=newObject();  statusArray.push(authorsArray[i].status);  }  }  statusArray.sort();  statusArray.unshift("All");   //The"All"valueisusedprogrammaticallytoun-filter(reset)theresultinthedataGrid.  returnstatusArray;  }

下面是mxml写的代码:
CODE:

<mx:Comboxidmx:Comboxid="cboAuthorsStatusFilter" dataProvider="{authorsStatusArray}" change="filterAuthorsGrid();"/>

这就是全部的技巧。因为DataGrid的dataProvider利用了绑定(binding),所以当用户在Flex组合框中选中了一个值的时候,DataGrid会动态显示过滤后的结果。请紧记,这只是一个小技巧而且可能有一些生涩的地方。但是你应该可以通过这些代码领会这种思想。

以上是“如何通过Flex组合框来过滤DataGrid”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!

网页题目:如何通过Flex组合框来过滤DataGrid
标题路径:https://www.cdcxhl.com/article18/gpcpgp.html

成都网站建设公司_创新互联,为您提供小程序开发响应式网站ChatGPT自适应网站关键词优化云服务器

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

微信小程序开发