<?xml version="1.0" encoding="utf-8"?>
<mx:Application layout="vertical" horizontalAlign="center"
xmlns:mx="
http://www.adobe.com/2006/mxml" >
<mx:Script>
<![CDATA[
import mx.events.DataGridEventReason;
import mx.controls.NumericStepper;
import mx.controls.TextInput;
import mx.core.UIComponent;
import mx.containers.HBox;
import mx.controls.DataGrid;
import mx.events.DataGridEvent;
// 屏蔽第一列的编辑事件
private function onItemEditBeginning(event:DataGridEvent):void{
if(event.columnIndex==0)
event.preventDefault();
}
private function onItemEditBegin(event:DataGridEvent):void{
// 阻止默认侦听器执行
event.preventDefault();
var dg:DataGrid = event.currentTarget as DataGrid;
// 创建项目编辑器实例
dg.createItemEditor(event.columnIndex,event.rowIndex);
var editorInstance:UIComponent = dg.itemEditorInstance as UIComponent;
var tiLabel:TextInput = editorInstance.getChildAt(0) as TextInput;
tiLabel.percentWidth = 50;
tiLabel.text = dg.editedItemRenderer.data.label;
var numStepper:NumericStepper = editorInstance.getChildAt(1) as NumericStepper;
numStepper.percentWidth = 50;
numStepper.value = dg.editedItemRenderer.data.price;
}
private function onItemEditEnd(event:DataGridEvent):void{
if (event.reason == DataGridEventReason.CANCELLED){
// 如果取消编辑,不更新数据
return;
}
// 阻止默认侦听器执行
event.preventDefault();
var dg:DataGrid = event.currentTarget as DataGrid;
var editorInstance:UIComponent = dg.itemEditorInstance as UIComponent;
var tiLabel:TextInput = editorInstance.getChildAt(0) as TextInput;
var numStepper:NumericStepper = editorInstance.getChildAt(1) as NumericStepper;
var newLabel:String = tiLabel.text;
var newPrice:Number = numStepper.value;
// 取得旧数据
var oldLabel:String = dg.editedItemRenderer.data.label;
var oldPrice:Number = dg.editedItemRenderer.data.price;
// 判断label是否为空,price是否小于50
if(newLabel=="" || newPrice<50){
//销毁项目编辑器并返回,不更新数据
dg.destroyItemEditor();
return;
}
// 为项目渲染器设置新数据
dg.editedItemRenderer.data.label = newLabel;
dg.editedItemRenderer.data.price = newPrice;
dg.destroyItemEditor();
}
<?xml version="1.0" encoding="utf-8"?>
<mx:Application layout="vertical" horizontalAlign="center"
xmlns:mx="
http://www.adobe.com/2006/mxml" >
<mx:Script>
<![CDATA[
import custom.MyEditor;
import mx.events.DataGridEventReason;
import mx.controls.NumericStepper;
import mx.controls.TextInput;
import mx.controls.DataGrid;
import mx.events.DataGridEvent;
// 屏蔽第一列的编辑事件
private function onItemEditBeginning(event:DataGridEvent):void{
if(event.columnIndex==0)
event.preventDefault();
}
private function onItemEditEnd(event:DataGridEvent):void{
if (event.reason == DataGridEventReason.CANCELLED){
return;
}
event.preventDefault();
var dg:DataGrid = event.currentTarget as DataGrid;
var editorInstance:MyEditor = dg.itemEditorInstance as MyEditor; // 取得项目编辑器中的新数据
var newLabel:String = editorInstance.newLabel
var newPrice:Number = editorInstance.newPrice
// 检查数据是否符合要求
if(newLabel=="" || newPrice<50){
// 销毁项目编辑器并返回,不更新数据
dg.destroyItemEditor();
return;
}
// 为项目渲染器设置新数据
dg.editedItemRenderer.data.label = newLabel;
dg.editedItemRenderer.data.price = newPrice;
dg.destroyItemEditor();
}
]]>
</mx:Script>
<mx:Model id="myData">
<items>
<item>
<icon>assets/icon1.png</icon>
<label>Item1</label>
<price>60.0</price>
</item>
<item>
<icon>assets/icon2.png</icon>
<label>Item2</label>
<price>75.0</price>
</item>
<item>
<icon>assets/icon3.png</icon>
<label>Item3</label>
<price>60.0</price>
</item>
<item>
<icon>assets/icon4.png</icon>
<label>Item4</label>
<price>70.0</price>
</item>
</items>
</mx:Model>
<mx:DataGrid width="300" dataProvider="{myData.item}" editable="true"
itemEditBeginning="onItemEditBeginning(event)"
itemEditEnd="onItemEditEnd(event)">
<mx:columns>
<mx:DataGridColumn itemRenderer="mx.controls.Image" dataField="icon" width="100"/>
<mx:DataGridColumn headerText="price" itemEditor="custom.MyEditor"
editorXOffset="5" editorYOffset="0" editorHeightOffset="40">
<!-- 在项目渲染器中使用Label组件显示label和price值 -->
<mx:itemRenderer>
<mx:Component>
<mx:Label text="{data.label}:${data.price}"/>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
</mx:Application>
相关推荐
Flex中支持在展示容器中编辑数据,并且可以为数据指定编辑器,本文将对编辑器做详细说明
flex3的cookbook书籍完整版dpf(包含目录),目录是我花了两个多小时自己整理的,希望对大家有帮助。 目录: 第一章.Flex与ActionScript基础(3) 1.1节.用FlexBuilder创建Flex项目 1.2节.用FlexBuilder创建Flex库项目 ...
D2 1.10物品修改器.rar
您可以使用 Visual Studio 2010 或更高版本中提供的 otitemeditor.sln 构建项目。 只需运行 ./build-linux.sh 即可编译。 它使用 Mono 包中的 xbuild 。 如果有人可以为其他平台提供编译说明,那就
A4打印模板-画图设计设计师产品草稿图纸-网格纸A4打印模板高清待办练字模板PDF下载
ISA-95 流程圣经,描述了PLM企业资源计划、MES制造执行系统、ERP企业资源计划系统、SCM供应链管理系统、客户关系管理CRM之间的关系
颁奖领奖音乐在各种表彰、嘉奖或庆祝场合中扮演着至关重要的角色,其作用主要体现在以下几个方面: 1.营造氛围: 2.情绪引导: 3.节奏控制: 4.品牌塑造: 5.文化表达: 6.致敬与激励: 综上所述,颁奖领奖音乐在颁奖典礼中不仅作为背景音效存在,更是情感传递、氛围营造、流程把控、品牌塑造、文化展现和精神激励的重要载体,对于提升典礼的整体效果和观众体验有着不可忽视的影响。
这个项目是用于个人参加浙江大学移动创新竞赛而使用。
手绘稿模板iphone_x_wireframe_template_-_a4A4打印模板高清待办练字模板PDF下载
使用最简单的输入流和输出流实现 文件复制粘贴功能。这是第二种方式,与第一种方式的不同在于我们使用byte[]数组盛放从myFile读取到字节。比第一种方式,速度会快一些。
Web APIs-Dom获取&属性操作(理论+实战篇)-获取随机图片案例资料
免安装,无缝从Linux系统上传下载文件
apk导入手机文件夹下载
Screenshot_20240422_201618_com.ss.android.ugc.aweme.jpg
设计模式_结构型_外观模式
电气测量技术课程设计-基于STM32的电机状态检测系统 实现的功能有实时检测电机的转速、温度和姿态角度,可以通过串口或Labviwe读取 选用的模块包括霍尔传感器、DS18B20温度传感器和MPU6050陀螺仪传感器
大家找文章比较费劲的话,可以直接在这个资源里找我会持续更新的,大家冲就完事了,为了学习我的人进步的更快的方式,我可以贡献一下自己的代码,让大家观看。 心理上:希望自己分享的东西得到关注度,心里上有成就感 研究领域上:希望分享的东西可以促进同行之间的交流,加深自己的理解以及讨论中发现问题 综合来看:对自己做的东西有自信,对自己写的东西有自信 我始终坚信,推动科学与技术发展的动力之一就是分享。分享有益,何谓劳也?得自己完成开发了项目中的功能很有成就感(自我感觉牛掰),于是分享在论坛可以和大牛们一起讨论,甚至提出建议进行修改完善,就这一点来说,分享代码对项目的推进是有好处的因为可以有成就感啊,分享出去可以炫耀一下,也可以与其他人交流交流 我们不妨开放一下我们的胸怀,不要怕别人学你的,也不要怕学不到别人的,做学问始终要恭谨甚至谦卑,时间长了,总归会发现,你的进步比别人的进步更快更高更强。 这是勉励您也是勉励我自己的话。从做项目角度来说,我是很乐意share的,也在自己的博客园、csdn、GitHub中share过自己的源码和笔记。首先需要说明一点:国内外均有很多很多人喜欢分享出自己的代码、总结
计算机技术是指评价计算机系统的各种知识和技能的总称。它涵盖了计算机硬件、软件、网络和信息安全等方面。计算机技术的发展使我们能够进行高效的数据处理、信息存储和传输。现代计算机技术包括操作系统、数据库管理、编程语言、算法设计等。同时,人工智能、云计算和大数据等新兴技术也在不断推动计算机技术的进步。计算机技术的应用广泛,涵盖了各个领域,如商业、医疗、教育和娱乐等。随着计算机技术的不断革新,我们可以更加高效地实现预期自动化、标准化
建筑网页插画界面XD源文件AdobeXD源码下载设计素材UI设计
网络安全相关的RSS订阅列表.zip