`
lzqustc
  • 浏览: 211109 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Flex3 on Rails ( 3 )

阅读更多

第三篇 Flex3 on Rails2 进阶

 

摘要:通过Flex3与Rails的通信来实现Rails的CRUD Create, Read, Update, Delete

实现方案:由Flex3的DataGrid实现Rails的index列表及删除操作;通过Flex3的PopUpManager(弹出窗口) 实现Rails的编辑和添加操作。

工具:Flex Bulider 3

 

步骤:

一、创建一个rails工程blogs ( 略)

二、Flex Bulider 3创建工程(略)

三、列表mxml文件(Blogs.mxml):

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" layout="vertical"backgroundGradientColors="[#000000, #CCCCCC]"

creationComplete="svcPostsList.send()">
  <mx:Script>
   <![CDATA[
    import mx.events.ListEvent;
    import mx.rpc.events.ResultEvent; 
    private function deletePost(post:XML):void {   //删除函数
    svcPostsDestroy.url = "/posts/" + post.id + ".xml";
    svcPostsDestroy.send({_method: "DELETE"});

    }   
    private function listPosts():void {  //列表函数
    svcPostsList.send();
    }
    import mx.managers.PopUpManager;   
    private function editPost(post:XML):void {   //弹出编辑、新建记录的窗口    
      var c:EditPopUp = new EditPopUp(); // 新建子窗体对象,对应EditPopUp.mxml文件
      PopUpManager.addPopUp(c, this, true); // 将子窗体加入PopUpManager中
      if (post != null) c.id = "edit"; // 向子窗体传递参数,区分new和edit操作
      else c.id = "new";
      c.data =  post;          //向子窗体(edit)传递被编辑的记录
      c.callbackFunction = this.refresh;  // 子窗体中可以调用的父窗体函数(这里是子窗体关闭时,刷新父窗体)
      PopUpManager.centerPopUp(c); // 子窗体弹出,居中
    } 
    public function refresh():void { 
       this.listPosts(); 
    }
   ]]>
 </mx:Script>

 

 <mx:HTTPService id="svcPostsList" url="/posts.xml" resultFormat="e4x" method="POST"/>
 <mx:HTTPService id="svcPostsDestroy" resultFormat="e4x" method="POST" result="listPosts()"/>

 <mx:XMLListCollection id="postsXLC " source="{XMLList(svcPostsList.lastResult.post)}"/>


 <mx:Panel title="Flex on Rails" width="100%" height="100%" fontFamily="Courier New" fontSize="18">
 
  <mx:DataGrid  id="postList" dataProvider="{postsXLC}"   width="675"  fontFamily="Verdana" fontSize="14"  height="100%">
    <mx:columns>
      <mx:DataGridColumn headerText="序号" dataField="id"  width="75"/>
      <mx:DataGridColumn headerText="标题" dataField="title"  width="150"  ></mx:DataGridColumn>
      <mx:DataGridColumn headerText="主体" dataField="body"  width="450" ></mx:DataGridColumn>
    </mx:columns>
  </mx:DataGrid>
   
  <mx:ControlBar width="100%" horizontalAlign="center">
    <mx:Button label="添加" width="100" height="30"   click="editPost(null)" fontFamily="Arial" fontSize="13" cornerRadius="5"/>
    <mx:Button label="编辑" width="100" height="30"  enabled="{postList. selectedItem != null}" click="editPost(XML(postList.selectedItem))" fontFamily="Arial" fontSize="13" cornerRadius="5"/>

    <mx:Button label="删除" width="100" height="30" enabled="{postList. selectedItem != null}" click="deletePost(XML(postList. selectedItem))" fontFamily="Arial" fontSize="13" cornerRadius="5"/>
  </mx:ControlBar>

</mx:Panel> </mx:Application>

 

  

说明:

1、函数部分应该不难理解^_^

 

2、关键是3个按钮,其中“添加”始终可见,而"编辑"、"删除"按钮需要选择DataGrid的某一行才可见即enabled="{postList.selectedItem != null}"

 

3、还有就是"编辑"、"添加"两个按钮用了同一个弹出框EditPopUp ,为了区分,在传参数时有所不同,对于“添加”,传参数为null,即editPost(null); 对于"编辑"当然要将当前数据传过去,即"editPost( XML(postList.selectedItem) )";

 

4、为了实现弹出窗口,你还需要相应地写 EditPopUp.mxml 文件,

内容见续篇: Flex3 on Rails ( 4 )

 

 

 

 

 

分享到:
评论

相关推荐

    Flexible Rails: Flex3 on Rails2

    ### Flexible Rails: Flex3 on Rails2 #### 关于Flexible Rails 本书《Flexible Rails: Flex 3 on Rails 2》由Peter Armstrong撰写,旨在探讨如何结合使用Flex 3和Rails 2来开发高效的富互联网应用程序(Rich ...

    Flex3与Rails结合

    在探索如何将Adobe Flex3与Ruby on Rails(简称Rails)结合,创建动态Web应用的过程中,一个常见的入门案例便是“HelloWorld”。此案例不仅展示了这两种技术如何协同工作,还揭示了它们在构建交互式用户界面方面的...

    flex on rails文档

    ### Flex on Rails 文档知识点详解 #### 一、关于 Flexible Rails **Flexible Rails** 是一个旨在结合 **Flex** 和 **Rails** 技术优势的框架。通过将这两者结合,可以构建出高度交互且功能丰富的 Web 应用程序。本...

    flex rails

    ### Flex与Ruby on Rails结合应用 #### 知识点一:Flex与Ruby on Rails的集成原理及优势 《FlexibleRails》这本书主要讲述了如何将Flex与Ruby on Rails进行整合,实现强大的Web应用程序。Flex是一种用于构建丰富的...

    flex 與 rails 開發的問題單管理sample

    Rails是Ruby on Rails的简称,是一个基于Ruby语言的开源Web开发框架,遵循MVC(Model-View-Controller)架构模式。Rails强调DRY(Don't Repeat Yourself)原则,提倡简洁、高效的代码,以及灵活的数据驱动开发。 在...

    Flexible Rails

    ### Flexible Rails:FLEX 3 on RAILS 2 #### 知识点一:Flexible Rails 概念 - **定义**:Flexible Rails 是一个结合了Ruby on Rails 和 Adobe Flex 技术的应用开发框架。 - **目标**:旨在利用Ruby on Rails 的...

    Hello! Flex 4

    Peter Armstrong is the co-founder and CEO of Ruboss Technology Corporation, a Vancouver, BC area company focusing on Adobe Flex and Ruby on Rails development and consulting. He is the co-creator of ...

    rails magazine issue 3

    ### Ruby on Rails Magazine Issue 3:深度探索与实践 #### 核心知识点解析: ##### 1. Ruby on Rails 概览 《Rails Magazine》聚焦于 Ruby on Rails 的深入研究与应用,每一期都包含了该领域内专家的见解、实用...

    Rails相关电子书汇总

    压缩包中的文件 "Flexible Rails FLEX 3 ON RAILS 2.pdf" 似乎是一本关于Rails 2.x版本和Adobe Flex 3结合使用的书籍。Flex是一个用于创建富互联网应用程序(RIA)的框架,允许开发者使用ActionScript或Flex SDK创建...

    ruby+flex实现天气预报

    总结,这个案例展示了Ruby on Rails和Flex如何协同工作,利用RSS获取并展示天气信息,同时体现了RIA开发在提升用户体验和应用功能方面的强大能力。通过深入理解和实践这些技术,开发者可以构建出更强大、更吸引人的...

    programming_flex.pdf

    - **Ajax on Rails**:介绍如何使用Ruby on Rails框架结合Ajax技术进行Web开发。 - **Learning JavaScript**:适合初学者学习JavaScript编程的基础教程。 - **Programming Atlas**:介绍多种编程语言和技术的使用...

    ActionScript 3.0 API文档及Flex开发详解电子书

    对C语言、Java语言/JavaEE系统、Ruby on Rails、Flex、Ajax等领域都有深入的研究:国内第一个Flex企业级上线项目核心开发者,属于国内最早一批应用Flex进行企业级开发的软件工程师;国内第一批Ruly on Rails架构的...

    rormatrixru.github.io:Ruby on Rails 开发人员能力矩阵

    通过设置 `display: flex` 属性,开发者可以轻松创建多列布局、对齐内容、自适应间隔等,这对于构建响应式 Rails 应用尤其重要。 提到“点击按钮而不是文本的计数器”,这可能是指在用户界面设计中的一种交互方式。...

    sharetribe:Sharetribe Go是可购得的市场软件,也可以作为托管的无代码SaaS产品获得。 有关无头,API优先的市场解决方案,请查看Sharetribe Flex

    Sharetribe Sharetribe为每个业务生命周期... Ruby on Rails 5.2.3 MySQL 5.7 React + jQuery Node.js 10.15(用于编译JavaScript资产) “所见即所得” 编辑 部署:自定义脚本(不使用Mina或Cap3) 服务器:H

    FusionCharts源代码极其中文使用帮助文档

    FusionCharts free 是一个跨平台,跨浏览器的flash图表组件解决方案,能够被ASP.NET, ASP, PHP, JSP, ColdFusion, Ruby on Rails, 简单 HTML 页面甚至PPT调用。你不需要知道任何关于flash编程的知识,你只需要知道你...

    JavaOne2009大会资料-Services SOA Platform and Middleware Services2

    "JRuby on Rails in Production: Lessons Learned from Operating a Live"聚焦于JRuby on Rails在生产环境中的实际应用。JRuby是Java平台上对Ruby语言的实现,它允许开发人员利用Ruby的简洁性和Rails框架的生产力,...

    SPRING攻略 第2版.pdf

    你在寻求和Ruby on Rails一样的一体化架构吗?那么你会被Grails等Spring替代方案所深深吸引,对于Groovy开发人员来说,Grails具有难以置信的能力和生产率。如果你是寻求快速、轻量级的应用构建方法的Java开发人员,...

Global site tag (gtag.js) - Google Analytics