实现Flex数据分页查询的几种处理方法
创始人
2024-04-21 13:00:53
0

首先看下Flex数据分页查询需要的应用效果

Flex数据分页查询效果

实际功能包括对Customer进行条件和Flex数据分页查询,客户相关国家数据查询。

  1. l        服务端功能处理  
  2. u     根据逻辑定义相关数据操作实体类  
  3.     [Table("Customers")]  
  4.     interface ICustomer  
  5.     {  
  6.         [ID]  
  7.         string CustomerID { get; set; }  
  8.         [Column]  
  9.         string CompanyName { get; set; }  
  10.         [Column]  
  11.        string ContactName { get; set; }  
  12.         [Column]  
  13.         string ContactTitle { get; set; }  
  14.         [Column]  
  15.         string Address { get; set; }  
  16.         [Column]  
  17.         string City { get; set; }  
  18.        [Column]  
  19.         string Region { get; set; }  
  20.         [Column]  
  21.        string PostalCode { get; set; }  
  22.         [Column]  
  23.         string Country { get; set; }  
  24.         [Column]  
  25.         string Phone { get; set; }  
  26.        [Column]  
  27.         string Fax { get; set; }  
  28.     }  
  29.     [Table("Customers",DISTINCT=true)]  
  30.     interface ICountry  
  31.     {  
  32.         [Column("Country")]  
  33.         string Name { get; set; }  
  34. }  
  35. u     定义逻辑方法  
  36.    [Service]  
  37.     public class CustomerService  
  38.     {  
  39.         public IList List(string matchCompanyName,string country, [Output]DataPage datapage)  
  40.         {  
  41.             Expression exp = new Expression();  
  42.             if (!string.IsNullOrEmpty(matchCompanyName))  
  43.                 exp &= Customer.contactName.Match(matchCompanyName);  
  44.             if (!string.IsNullOrEmpty(country))  
  45.                 exp &= Customer.country == country;  
  46.             datapage.RecordCount = exp.Count();  
  47.             return exp.List(new Region(datapage.PageIndex,datapage.PageSize));  
  48.         }  
  49.         public IList ListCountry()  
  50.         {  
  51.             Expression exp = new Expression();  
  52.             return exp.List();  
  53.         }  
  54. }  
  55. l        Flex功能处理  
  56. u     定义AS逻辑代理方法  
  57.     import Core.Utility;  
  58.     /**  
  59.     * Action Script调用方法生成工具1.0  生成时间:2009-7-27 21:39:39  
  60.     */  
  61.    public dynamic class CustomerService_List  
  62.     {  
  63.        public var Callback:Function;  
  64.        public var matchCompanyName:Object;  
  65.        public var country:Object;  
  66.       public var PageIndex:Object;  
  67.        public var PageSize:Object;  
  68.       public var RecordCount:Object;  
  69.        public var PageCount:Object;  
  70.        public var OrderField:Object;  
  71.        public function Execute(method:String="get"):void  
  72.        {  
  73.            this._TimeSlice = new Date();  
  74.            Utility.CallMethod("CustomerService_List",this,Callback,method);  
  75.        }  
  76.     }  
  77.     import Core.Utility;  
  78.     /**  
  79.     * Action Script调用方法生成工具1.0  生成时间:2009-7-27 21:39:43  
  80.     */  
  81.     public dynamic class CustomerService_ListCountry  
  82.     {  
  83.        public var Callback:Function;  
  84.        public function Execute(method:String="get"):void  
  85.        {  
  86.           this._TimeSlice = new Date();  
  87.            Utility.CallMethod("CustomerService_ListCountry",this,Callback,method);  
  88.        }  
  89.     }  
  90. u     在界面定义逻辑操作对象  
  91.     
  92.         
  93.            [Bindable]  
  94.            private var Customers:Object = new ArrayCollection();  
  95.            [Bindable]  
  96.            private var Countrys:Object = new ArrayCollection();  
  97.            private var getCustomer = new CustomerService_List();  
  98.            private var getCountry = new CustomerService_ListCountry();  
  99.        ]]> 
  100.     mx:Script> 
  101. u     设置国家Combox数据源绑定  
  102.  id="txtCountry"  dataProvider="{Countrys}"    
  103. labelField="Name" editable="true" width="135"   
  104. color="#000000">mx:ComboBox> 
  105. u     设置客户查询数据源绑定  
  106.      dataProvider="{Customers}" width="100%" height="100%"> 
  107.         
  108.             headerText="CustomerID" dataField="CustomerID"/> 
  109.             headerText="CompanyName" dataField="CompanyName"/> 
  110.             headerText="ContactName" dataField="ContactName"/> 
  111.             headerText="ContactTitle" dataField="ContactTitle"/> 
  112.             headerText="Address" dataField="Address"/> 
  113.             headerText="City" dataField="City"/> 
  114.             headerText="Region" dataField="Region"/> 
  115.             headerText="PostalCode" dataField="PostalCode"/> 
  116.             headerText="Country" dataField="Country"/> 
  117.             headerText="Phone" dataField="Phone"/> 
  118.             headerText="Fax" dataField="Fax"/> 
  119.        mx:columns> 
  120.     mx:DataGrid> 
  121. u     在界面初始化事件中定义相关方法加调处理  
  122.      
  123.         
  124.            getCountry.Callback= function(result:XML,err:Boolean){  
  125.                 Countrys= result.Data.Country;  
  126.            };  
  127.                  getCustomer.Callback = function(result:XML,err:Boolean){  
  128.               Customers = result.Data.Customer;  
  129.               if(getCustomer.FristSearch)  
  130.              {  
  131.                   dp.Open(getCustomer.PageSize ,result.Properties.datapage.RecordCount)  
  132.               }  
  133.            };  
  134.            getCustomer.PageSize=10;  
  135.            getCustomer.FristSearch = true;  
  136.            getCountry.Execute();  
  137.           getCustomer.Execute();  
  138.        ]]> 
  139.     mx:initialize> 
  140. u     查询按钮相关功能处理  
  141.         label="Search" icon="@Embed(source='Search.png')"> 
  142.             
  143.               
  144.                  getCustomer.FristSearch = true;  
  145.                   getCustomer.matchCompanyName = txtCompanyName.text;  
  146.                   getCustomer.country = txtCountry.text;  
  147.                   getCustomer.PageIndex =0;  
  148.                   getCustomer.Execute();  
  149.               ]]> 
  150.            mx:click> 
  151.     mx:Button> 

其实Flex做应用开发效率还是挺高的,特别当你熟了MXML后基于不用在UI设计器和MXML间切换所带来的麻烦。由于Flex直接支持CSS文件来描述,所以在开发过程基本不用管样式,到***把设计人员搞好的CSS直接引用到Application里即可。顺便推荐一个Flex的样式主题站http://www.scalenine.com/gallery/ 提供一些免费的主题。Flex数据分页查询最终实现。

【编辑推荐】

  1. Flex教程 Flex程序开发初步
  2. Flex垃圾回收和性能优化的一些总结
  3. Flex和Jsp之间中文参数的传递
  4. Flex编程中需要注意的Namespace用法
  5. Flex SDK 4:Gumbo的主题 极其快速的RIA开发

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...