您好,欢迎来到尔游网。
搜索
您的当前位置:首页flex的获取远程服务器端返回数据并在页面展示

flex的获取远程服务器端返回数据并在页面展示

来源:尔游网

1.在flex里面显示查询后的list集合数据

//全局配置类

 private var model:ModelConfig=ModelConfig.getOne();

 ModelCong类中存放一些全局的东西要实现接口implements IModelLocator

(如public var root:String=" ";--系统数据,

public var users:UsersVO=new UsersVO();用来存储信息的变量,

public var tiaomaLogTing:ArrayCollection=new ArrayCollection();//List集合用来存放类似与users的JAVABEAN实体对象)

ModelConfig.as

---------------------------------------------

package fx.model
{
    import com.adobe.cairngorm.model.IModelLocator;
   
    import fx.util.PageBar;
    import fx.util.Pages;
   
    import mx.collections.ArrayCollection;
   
    import spark.components.TitleWindow;
    import spark.components.WindowedApplication;
   
   
    [Bindable]
    /**
     *配置所有需要的model类
     * @author Administrator
     *
     */
    public class ModelConfig implements IModelLocator
    {
        //系统数据
        public var root:String="http://localhost:8090/flexserver";
        public const ISDEPLOY:Boolean=true;
        public var states:String="loginState";
        public var message:String="";

 

 

 


页面上的数据展示:

因为ModelConfig声明称Bindable ,所以才能在mxml上使用{ model.tiaomaLogTing }来进行数据绑定

<mx:DataGrid dataProvider=" { model.tiaomaLogTing } " id=" tiaomaList " >

<mx:columns>     

   <mx:DataGridColumn headerText=" daima " dataField=" daima " />//daima是JAVABEAN实体类里面的属性

<mx:DataGridColumn headerText=" chongfu " dataField=" chongfu " />

<mx:DataGridColumn headerText=" jieshu " dataField=" jieshu " />

<mx:DataGridColumn headerText=" shuliang " dataField=" shuliang " />

<mx:DataGridColumn headerText=" xftm " dataField=" xftm " />

</mx:columns>

</mx:DataGrid>

 

2.与后台交互

  flex前台要有一个和后台对应的VO用来存储信息

2.1查询query();

  creationComplete="query();"//页面加载事件

  public function query():void{
      var name:String=this.ename.text;
      var title:String=this.title.text;
      var content:String=this.content.text;  
      var para:Object={tname:name,
              ttitle:title,
              tcontent:content,
              tsid:sid,
              loginname:loginname,
              type:'init'};

            //调用自己编写的CD类

      CairngormUtil.event("TopicListCD ",para);//与后台交互的CD

   }

 

   在自己编写的前端控制器类中进行注册:

   TopicListCD要在public class CommandConfig extends FrontController中进行注入

   add(fx.commands.intalk.TopicListCD);


   TopListCD类的代码如下:

  public class TopicListCD extends BaseCommand
 {
  private var ty:String;

  // 发送请求到远程服务器端 的方法
  override public function execute(event:CairngormEvent):void{
   var data:Object=event.data;
   data['method']="doSearch";//后台的查询方法
   ty=data.type;
   var
后台对应的Action
   CairngormUtil.send(url,this,data);//发送请求到远程服务器端
  }
  //远程服务器端返回结果处理方法
  override public function result(data:Object):void{
   var xml:XML=XML(data.result);//得到结果
   var topicList:Array=LukaTool.xmlbean(xml.TopicVO,"fx.model.TopicVO"); //后台得到的List集合JAVABEN
   model.topicList=new ArrayCollection(topicList);  //放入flex页面要显示的list集合里面
   if(ty=='init' && ty!=""){
    model.topicPage=new Pages(xml.count);//分页对象
   }else{
    var tem:int=model.topicPage.currentPage;
    model.topicPage=new Pages(xml.count);    
    model.topicPage.currentPage=tem;
   }
   model.topic=new TopicVO();
  }  
 }

 

分页类:

 

package fx.util
{
 import mx.controls.Alert;
 
 [Bindable]
 public class Pages
 {
      public var totalrows:int;//总行数
      public var currentPage:int;// 当前页数
     
      public var pageSize:int=10;//每页显示行数
      public var totalPages:int;//总页数
      public var startRow:int;//当前页在数据库中的起始行
    
  
      public var currentIndex:int=-1;//当前处理序列
      public function Pages(_totalrows:int){       
       if(_totalrows>0){
       this.totalrows=_totalrows;
       totalPages=totalrows/pageSize;
       var mod:int=totalrows%pageSize;
       if(mod>0){
       totalPages++;
       }
        currentPage=1;//默认显示第一页
        startRow=(currentPage-1)*pageSize;
    
       } 
      }
  
   //第一页
    public function first():void{
     currentPage=1;
     startRow=0;
    }
    //下一页
    public function next():void{
    if (currentPage < totalPages) {
        currentPage++;
    
      }
      startRow = (currentPage - 1) * pageSize;

     }
     //上一页
      public function previous():void { 
      if (currentPage == 1) {
        return;
      }
      if(currentPage>0)
      currentPage--;
   
      startRow = (currentPage - 1) * pageSize;
    }
    //尾页
      public function last():void { 
      currentPage = totalPages;
      startRow = (currentPage - 1) * pageSize;
    }
     //跳转第几页
      public function refresh(_currentPage:int) :void{
      currentPage = _currentPage;
      startRow = (currentPage - 1) * pageSize;
      if (currentPage > totalPages) {
        last();
      }
    }
    
 }
}

 

转自:http:///litinghema0725/archive/2010/01/14/5190861.aspx

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- axer.cn 版权所有 湘ICP备2023022495号-12

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务