传统应用中有这个一个很好的效果,即一个Grid的一个单元格内嵌入一个文本框后面再跟个按钮,做一些操作,很机动,很灵活。
Flex当然不会直接给提供这样的组件,只能自己写一个,具体实现如下:
1、写一个Grid。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
creationComplete="init();">
<mx:Script source="sss.as"/>
<mx:DataGrid id="testGrid" editable="true">
<mx:dataProvider>
<mx:Object code="PC-001" amount="11"/>
<mx:Object code="PC-002" amount="1"/>
</mx:dataProvider>
<mx:columns>
<mx:DataGridColumn headerText="编号"
dataField="code"
headerStyleName="centered"
itemEditor="common.CellTextButton.CellTextButton"
editable="true"
width="120"
resizable="false"
textAlign="left"/>
<mx:DataGridColumn headerText="数量"
dataField="amount"
headerStyleName="centered"
editable="true"
textAlign="left"/>
</mx:columns>
</mx:DataGrid>
</mx:Application>
要注意的问题如下:
(1)、editable="true"
(2)、itemEditor="common.CellTextButton.CellTextButton" 双括号里面的内容就是一个自己写的组件组件,
下面介绍这个组件。
2、写一个包含Text和Button的组件。
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%">
<mx:Script>
<![CDATA[
[Bindable]
[Embed(source='image/common/fangdajing.jpg')]
private var fangdajing:Class;// 这个素材在文章下面提供了链接,要自己下下来。
private var _text:String = "";
public function get text():String {
return this._text;
}
public function set text(str:String):void {
this._text = str;
}
]]>
</mx:Script>
<mx:Text id="txt" width="100%"/>
<mx:Button id="btn" icon="{fangdajing}" width="23"/>
</mx:HBox>
要注意的问题如下:
(1)、里面有个text属性,切忌这个属性不能删除,因为Flex的DataGrid会自己判断,默认就从这个属性中读值,
如果去掉或改名会出问题(好像是改成label也可以,没试过,大家可以试一下)。
3、在AS中调用。
// ActionScript file
import common.CellTextButton.CellTextButton;
import flash.events.MouseEvent;
import mx.controls.Alert;
import mx.controls.DataGrid;
import mx.controls.TextInput;
import mx.events.DataGridEvent;
public function init():void {
testGrid.addEventListener(DataGridEvent.ITEM_FOCUS_IN, editGrid);
testGrid.addEventListener(DataGridEvent.ITEM_FOCUS_OUT, editOver);
}
public function editGrid(event:DataGridEvent):void {
if (event.columnIndex == 0) {
CellTextButton(DataGrid(event.target).itemEditorInstance).txt.text = testGrid.selectedItem.code;
CellTextButton(DataGrid(event.target).itemEditorInstance).btn.addEventListener(MouseEvent.CLICK, btnClick);
} else if (event.columnIndex == 1) {
TextInput(DataGrid(event.target).itemEditorInstance).restrict = "0-9";
TextInput(DataGrid(event.target).itemEditorInstance).maxChars = 9;
}
}
public function editOver(event:DataGridEvent):void {
if (event.columnIndex == 0) {
var str:String = CellTextButton(DataGrid(event.target).itemEditorInstance).txt.text;
testGrid.selectedItem.code = str;
}
}
public function btnClick(event:MouseEvent):void {
Alert.show("Do something");
}
偶了。
- 大小: 789 Bytes
分享到:
相关推荐
这样,当用户在Datagrid中看到该列时,就会显示一个可勾选的复选框。 以下是一个简单的步骤来实现这个功能: 1. **创建自定义Renderer**:首先,我们需要创建一个新的MXML组件,继承自mx.controls.CellRenderer或...
本篇文章将深入探讨如何在Flex中创建一个既可编辑又具有分页功能的DataGrid。 首先,我们需要导入必要的库和类。在Flex项目中,`mx.controls.DataGrid` 是核心的DataGrid类,而`mx.controls.PagingControl` 和 `mx....
这个组件提供了灵活的布局选项,可定制的列格式化,以及丰富的用户交互功能,如排序、筛选和编辑。"datagritexample"可能是这个项目或示例的名称,旨在演示DataGrid的用法。 1. **Flex基础**:Flex是基于...
Flex DataGrid组件是一个可滚动的表格,用于显示大量的结构化数据。它提供了诸如排序、选择、分页等特性,使得用户能够高效地浏览和操作数据。DataGrid可以与各种数据源绑定,包括Array、ArrayCollection、XMLList等...
2. **全选功能需求**: 在许多应用中,用户可能需要一次性选择Datagrid中的所有记录,例如进行批量操作,如删除、编辑等。因此,为Datagrid添加全选功能可以提高用户体验。 3. **实现方法**: - **CheckBox**: 可以...
ComboBox是一个允许用户从下拉列表中选择一个项目的控件,它可以有一个可编辑的文本输入字段。我们可以通过设置它的dataProvider来填充下拉选项,这些选项通常是从数据服务获取的数组集合。在用户点击下拉按钮时,...
1. **Flex DataGrid组件**:Flex DataGrid是Adobe Flex SDK中的一个组件,它提供了一种高效且可定制的方式来展示表格数据。开发者可以设置列头、排序、过滤和编辑等功能。DataGrid可以绑定到各种数据源,如...
在Flex编程领域,DataGrid组件是开发者们常用的数据展示工具,尤其在处理大量结构化数据时,它能提供高效、可定制化的展示效果。本文将深入探讨Flex DataGrid的高级用法,通过实例源码来解析其核心特性,帮助开发者...
每列可以设置标题、数据字段、宽度、是否可编辑等属性。例如: ```xml 姓名" dataField="name"/> 年龄" dataField="age"/> ``` 3. **数据绑定**: 要让DataGrid显示数据,我们需要将其绑定到数据源。数据...
3. **可编辑性**:用户可以通过editable属性控制是否允许编辑数据。在需要时,DataGrid可以使用itemEditor属性指定的编辑器来编辑单元格内容。 4. **排序**:通过sortableColumns属性,用户可以点击列标题对数据...
2. 鼠标双击可编辑:在默认情况下,Flex DataGrid的单元格是只读的。为了实现鼠标双击编辑,我们需要监听GridEvent.DOUBLE_CLICK事件,并在事件触发时开启相应的单元格或行的编辑模式。这可能涉及到设置...
ItemRenderer是DataGrid的一个关键概念,它是每个数据显示单元的可重用视图。通过创建自定义的ItemRenderer类,我们可以自由地设计每个单元格的外观,包括添加任意的子组件。 步骤如下: - 创建一个新的MX或Spark ...
Flex DataGrid 内嵌 AutoCompleteDataGrid 是一种在 Adobe Flex 应用程序中实现的数据展示技术,它结合了 DataGrid 和 AutoCompleteDataGrid 两种组件的功能,为用户提供了一个高效的、可搜索的数据表格视图。在Flex...
在给定的标题“FLEX4 s:dataGrid单元格弹出可文本”中,我们关注的是如何实现点击`DataGrid`的单元格后弹出一个自定义组件,展示更多或更详细的信息。 在Flex4中,我们可以利用事件监听和自定义组件来实现这一功能...
7. **自定义扩展**: Spark DataGrid的模块化设计使得开发者能够轻松地扩展其功能,例如添加自定义列渲染器、编辑器,或者创建自定义的脚部组件以满足特定需求。 总之,"Flex FooterSpark DataGrid 表格制作"是一个...
2. **创建ArrayCollection**:然后,将这些对象添加到ArrayCollection中,ArrayCollection是Flex中常用的可绑定数据源。 ```actionscript var items:ArrayCollection = new ArrayCollection([ new Item({label: ...
在IT行业中,动态可编辑的DataGrid是一种常见且强大的组件,尤其在开发用户界面时,用于展示和操作大量数据。Flex作为Adobe推出的一种开源富互联网应用程序(RIA)框架,提供了丰富的UI组件库,其中就包括了DataGrid...
在Flex中,DataGrid组件是一个非常重要的数据展示控件,常用于显示大量的结构化数据,并支持排序、选择和编辑等功能。在能源监测软件的界面设计中,DataGrid组件往往用于呈现各种能源指标,如能耗、产量等,以便用户...