1.在flex里面显示查询后的list集合数据
//全局配置类
?private var model:ModelConfig=ModelConfig.getOne();
?ModelCong类中存放一些全局的东西要实现接口implements IModelLocator
(如public var root:String=" http://192.168.1.68:8090/OA ";--系统数据,
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="";
??????? //远端服务器地址
??? ??? public var root:String="http://10.1.0.155:8081/test";
??? ???
??? ??? //公用
??? ??? public var rootWin:WindowedApplication;
??? ??? public var loginViewWin:TitleWindow;
??? ??? public var mainViewWin:TitleWindow;
??? ??? public var doEvaluateVO:DoEvaluateVO;
??? ??
??? ?? ??? /////////////////////////////////////////////////////////////////?????????
????????? private static var one:ModelConfig;
???????? public static function getOne():ModelConfig
????????? {
?????????????? if (one == null)one = new ModelConfig();
?????????????? return one;
????????? }
????????? public function ModelConfig()
????????? {
?????????????? //if (one !=null )throw new Error( "Only one should be instantiated" );
??????????????
????????? }
?????????
??? }
}
?
?
?
页面上的数据展示:
因为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 ";// url:String=model.root+"/intalkAction.do 后台对应的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://blog.csdn.net/litinghema0725/archive/2010/01/14/5190861.aspx