flex程序

2023-11-05

< mx:Application
    
xmlns:mx ="http://www.adobe.com/2006/mxml"
    layout
="absolute" >

    < mx:Script >
         <![CDATA[
            include "product.as";
        
]]>
     </ mx:Script >

     < mx:HTTPService
        
id ="productService"
        url
="http://localhost:8888/flex2/productServlet"
        resultFormat
="e4x"
        useProxy
="false"   />   <!-- url改成您的数据请求地址 -->

     < mx:ViewStack  id ="viewstack1"  width ="731"  height ="473"   x ="86.5"  y ="10" >
     <!-- index 0  -->
         < mx:Canvas  label ="Form View"  width ="100%"  height ="100%" >
             < mx:Form  horizontalCenter ="0"  verticalCenter ="0"
                backgroundColor
="#18E1CC"  width ="124"  height ="56" >
                     < mx:Button  label ="进入"  click ="fill()"  width ="100" />
             </ mx:Form >
         </ mx:Canvas >
     <!-- index 1 -->    
         < mx:Panel  label ="AdvancedDataGrid 显示"  width ="100%"  height ="100%"   layout ="absolute" >
             < mx:AdvancedDataGrid  id ="grid1"  width ="666"  height ="380"  dataProvider ="{_result.product}"   editable ="true"  itemEditEnd ="updateHandler(event)"    x ="10"  y ="10" >
                   < mx:columns >
                      < mx:AdvancedDataGridColumn   dataField ="id"  headerText ="ID"   editable ="false" />
                     < mx:AdvancedDataGridColumn   dataField ="productName"  headerText ="产品名称"   />
                     < mx:AdvancedDataGridColumn   dataField ="remark"  headerText ="备注"   />
                   </ mx:columns >
             </ mx:AdvancedDataGrid >
            
             < mx:Button  x ="60"  y ="401"  label ="添加"  click ="{viewstack1.selectedIndex = 2}" />
             < mx:Button  label ="删除"    x ="180"  y ="401"  click ="remove()" />    
         </ mx:Panel >
     <!-- index 2 -->
         < mx:Canvas  label ="添加新记录"  width ="100%"  height ="100%"  id ="canvas3"   >
             < mx:Form
                    
backgroundColor ="#FFFFFF"   verticalCenter ="-91"  horizontalCenter ="-138" >
                    
                 < mx:FormItem  label =""  width ="189"  height ="20" >
                     < mx:Button   label ="返回"  click ="this.viewstack1.selectedIndex=1" />
                     < mx:TextInput  id ="hidden_id"   visible ="false"   />
                 </ mx:FormItem >    
                
                 < mx:FormItem  label ="产品名称" >
                     < mx:TextInput  id ="productName" />
                 </ mx:FormItem >
                
                 < mx:FormItem  label ="备注" >
                     < mx:TextInput  id ="remark" />
                 </ mx:FormItem >
                
                 < mx:Button  label ="保存"  click ="insertProduct()"  id ="btn"   />
             </ mx:Form >
         </ mx:Canvas >
        
     </ mx:ViewStack >

   
</ mx:Application >
as:
import mx.collections.XMLListCollection;
import mx.controls.Alert;
import mx.controls.TextInput;
import mx.events.AdvancedDataGridEvent;
import mx.events.CloseEvent;
import mx.rpc.events.ResultEvent;

private var params:Object =  new Object();

// private var ld:XMLListCollection; 官方文档的XMLListCollection并不能,例子有问题郁闷
[Bindable]
private var _result : XML ;  // 注意文件名防止冲突
/** */ /**
 * xml数据的渲染
 * 
*/

public function resultHandler(event:ResultEvent): void 
{
    _result = XML(event.result);
}

/** */ /**
 * 查询所有产品的按钮事件
 * 
*/

public function insertItemHandler(event:ResultEvent): void 
{
    fill();
}

/** */ /**
 * 查询所有产品的方法 
 * 
*/

public function fill(): void
{
    //为productService(HTTPService) 重新绑定监听器(查询)
    productService.removeEventListener(ResultEvent.RESULT,insertItemHandler);
    productService.addEventListener(ResultEvent.RESULT,resultHandler);
    productService.method = "GET";
    //要传递的参数
    params['method'] = "findAll";
    productService.cancel();
    productService.send(params);
    //切换到Grid视图
    viewstack1.selectedIndex=1;
}

/** */ /**
 * 插入产品
 * 
*/

public function insertProduct(): void
{
    //绑定新的监听器(插入)
    productService.removeEventListener(ResultEvent.RESULT,resultHandler);
    productService.addEventListener(ResultEvent.RESULT,insertItemHandler);
    productService.method = "POST";
    //传递Form表单参数
    params = {"method": "save", "id": NaN, "productName": productName.text,
                 "remark": remark.text}
;
    productService.cancel();
    productService.send(params);
    clearInputFields();
}

/** */ /**
 * 
 * 更新记录的事件处理函数
 * 
 * 
*/

public function updateHandler(event:AdvancedDataGridEvent): void
{
    //取消的话不更新
    if(event.reason == "cancelled")
    {
        return;
    }

    //重新注册
    productService.removeEventListener(ResultEvent.RESULT,resultHandler);
    productService.addEventListener(ResultEvent.RESULT,insertItemHandler);
     //得到输入后的新数据    
     var newData:String = (TextInput(event.currentTarget.itemEditorInstance)).text;
     //得到输入前的三个数据
     var _id : int  = this.grid1.selectedItem["id"];
     var _productName :String = this.grid1.selectedItem["productName"];
     var _remark :String = this.grid1.selectedItem["remark"];
     //第二列为产品名称
     if(event.columnIndex == 1)
     {
         _productName = newData;
     }

     //第三列为备注
     if(event.columnIndex == 2)
     {
         _remark = newData;
     }

     params = {"method": "update", "id": _id,"productName":_productName,"remark":_remark};
     productService.cancel();
     productService.send(params);
}


/** */ /**
 * 删除的方法
 * 
*/

public function remove() :  void
{
    var index:int = this.grid1.selectedIndex;
    if(index == -1)
    {
         Alert.show("您没有选择任何记录","提示");
         return;
    }

     Alert.yesLabel = "确定";
     Alert.cancelLabel = "取消";
     Alert.show("确定要删除吗?","提示",Alert.YES|Alert.CANCEL,this,defaultCloseHandler);
}

/** */ /**
 * 处理选择是否删除后的事件
 * 
 * 
*/

public function defaultCloseHandler(event:CloseEvent): void
{
     //如果点击了确定
     if(event.detail == Alert.YES)
     {
          productService.removeEventListener(ResultEvent.RESULT,resultHandler);
         productService.addEventListener(ResultEvent.RESULT,insertItemHandler);
          var id : String  = this.grid1.selectedItem["id"];
         params = {"method": "remove", "id": id};
         productService.cancel();
         productService.send(params);
     }

}

/** */ /**
 * 清除form中的属性值
 * 
*/

private function clearInputFields(): void
{
    productName.text = "";
    remark.text = "";
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

flex程序 的相关文章

随机推荐

  • Excutor线程池原理详解

    目录 一 线程池的创建以及参数 二 任务提交的方法 三 线程池参数解释 四 线程池原理 五 线程池原理图 六 execute方法执行流程图 一 线程池的创建以及参数 public ThreadPoolExecutor int corePoo
  • vue3.0版本给对象新增属性

    对象新增属性 Reflect set 目标对象 属性名 值 Reflect set val middle middle
  • Spring Cloud Alibaba 2021.0.1.0 版本发布啦

    01 什么是 Spring Cloud Alibaba Aliware Spring Cloud Alibaba 是由阿里巴巴 后文简称 阿里 中间件团队于 2018 年 7 月开源 为业界提供的一套基于阿里内部分布式技术的一站式微服务构建
  • JavaWeb学习-Servlet处理解析JSON文件导出Excel实例

    文章目录 前言 一 实例要求 二 主要问题点 1 保存请求中的文件 2 JSON的简单处理 3 Servlet共享数据 实现勾选信息导出为excel 三 源码 总结 前言 这里是javaweb小白第一次尝试写博客 主要是想记录一下自己在学习
  • vue 简单实现vuex原理

    效果图如下 1 准备好环境 使用 vue cil 初始化项目配置 npm install g vue cli 全局安装 vue cli vue create demo vue 创建项目 yarn add vuex安装vuex创建一个stor
  • 什么是区块链?区块链相关知识区入门

    初识区块链 1 区块链家族 一 去中心化 父亲 基本概念 中心化和去中心化就是集权与分权 去中心化是一种哲学中思想 在人类存在时即有 主旨为弱化中心 实现人与人之间的直接沟通 交易的一种方式 去中心化 不是不要中心 而是由节点来 自由选择中
  • 使用gdb调试出现 No debugging symbols found in a.out

    使用常规的gcc编译或者使用带调式信息 g的编译都有可能会在使用gdb工具的时候出现No debugging symbols found in a out错误 1 常规编译 使用常规编译生成的可执行文件正常一定会出现No debugging
  • 服务器强制关机后,无法开机

    服务器强制关机后 开不了机 开机后显示 dev sda1 recovering journal dev sda1 clean 3905813 58720032 files 193134708 234422272 blocks 经询问 是由强
  • 2014软专高级程序语言T4(三角形面积)

    平面有100个点 任意三个点可以构成一个三角形 编一个程序 输入100个点的坐标 输出在构成的所有三角形中 最大的三角形的面积 代码如下 include
  • 数据处理中的归一化与反归一化

    一 定义 数据归一化 标准化 是数据预处理的一项基础工作 不同评价指标往往具有不同的量纲和量纲单位 为避免影响数据分析结果 消除指标之间的量纲影响 须对数据进行标准化处理 数据的归一化 normalization 是将数据按比例缩放 使之落
  • redis必杀命令:键(key)

    语法 Redis 键命令的基本语法如下 redis 127 0 0 1 6379 gt COMMAND KEY NAME 例如 redis 127 0 0 1 6379 gt SET w3ckey redis OK redis 127 0
  • 使用UltraISO或Rufus制作U盘启动安装优麒麟19.04

    本文教你在Windows操作系统中使用UltraISO 软碟通 或Rufus制作U盘启动盘的方法 以优麒麟Ubuntu Kylin 19 04为例 适用于大多数Linux发行版 包括Ubuntu 18 04等 UltraISO和Rufus任
  • [网络安全自学篇] 三十八.hack the box渗透之BurpSuite和Hydra密码爆破及Python加密Post请求(二)

    这是作者的系列网络安全自学教程 主要是关于安全工具和实践操作的在线笔记 特分享出来与博友们学习 希望您们喜欢 一起进步 前文详细讲解了hack the box在线渗透平台获取邀请码 注册过程 本文将分享Web渗透三道入门题目 它们包括Pyt
  • python3 [爬虫入门实战] 爬虫之使用selenium 爬取百度招聘内容并存mongodb

    爬取的内容为百度招聘页面下的python 杭州地区 所要爬取的内容 一共爬取的是6个字段 1 招聘岗位 2 招聘城市 3 招聘公司 4 招聘薪资 5 招聘日期 6 招聘来源网站 用的是selenium beautifulsoup mongo
  • 餐饮开发项目有智能排菜算法遇到的问题

    说白了 智能排菜就是在用户下了订单之后自动的打印菜品 包含相同的菜品可以一起打出来 以提高饭店效率 个人的想法就是运行一个Timer 事实的检测智能排菜这个功能是否启用 若启用的话则自动打印菜品 Timer的用法就是要继承TimeTask把
  • 【无标题】Altium Designer 版本功能介绍收集

    尊敬的原文作者 感谢分享 如文章转载有冒犯之处 请您联系告知 鄙人将在第一时间删除 原文连接 Altium Designer更新得那么快 到底应该用哪个版本 电子发烧友网 AD19 0 6 显然 软件版本越高 功能越齐全 可能存在一些未知的
  • 使用JAVA实现语音朗读一段文本

    需求要用JAVA去调用windows自带的语音引擎去朗读一段文字 网上资料少得可怜 把百度和bing都翻遍了 总算找到一段代码 而且朗读起来还有感情色彩 win7测试 不过多音字还是暂时没解决 需要做的工作 1 下载jacob 1 17 M
  • 从源码出发浅析 Android TV 的焦点移动原理 (上篇)

    转自 https cloud tencent com developer article 1006289 焦点 焦点 Focus 可以理解为选中态 在Android TV上起很重要的作用 一个视图控件只有在获得焦点的状态下 才能响应按键的C
  • 安装Android Studio出现的问题--SDK Components Setup

    安装的时候遇到这样的问题 查了半天资料才解决 先看一看出错的地方 这一步是安装sdk 选择安装的位置 我选择直接安装到Android目录下 但是出问题了 换了其他的也不可以 再看一看我的文件夹安装目录 问题就出现在这里了 文件夹没弄对 解决
  • flex程序

    lt mx Application xmlns mx http www adobe com 2006 mxml layout absolute gt lt mx Script gt lt mx HTTPService id productS