`
fandayrockworld
  • 浏览: 312988 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Flex DataGrid 可编辑

    博客分类:
  • Flex
阅读更多

传统应用中有这个一个很好的效果,即一个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
0
0
分享到:
评论
1 楼 ahcr1026212 2014-09-10  

相关推荐

    Flex Datagrid checkbox实现

    这样,当用户在Datagrid中看到该列时,就会显示一个可勾选的复选框。 以下是一个简单的步骤来实现这个功能: 1. **创建自定义Renderer**:首先,我们需要创建一个新的MXML组件,继承自mx.controls.CellRenderer或...

    Flex创建可编辑以及分页的DataGrid

    本篇文章将深入探讨如何在Flex中创建一个既可编辑又具有分页功能的DataGrid。 首先,我们需要导入必要的库和类。在Flex项目中,`mx.controls.DataGrid` 是核心的DataGrid类,而`mx.controls.PagingControl` 和 `mx....

    flex datagrid

    这个组件提供了灵活的布局选项,可定制的列格式化,以及丰富的用户交互功能,如排序、筛选和编辑。"datagritexample"可能是这个项目或示例的名称,旨在演示DataGrid的用法。 1. **Flex基础**:Flex是基于...

    FLEX datagrid应用实例

    Flex DataGrid组件是一个可滚动的表格,用于显示大量的结构化数据。它提供了诸如排序、选择、分页等特性,使得用户能够高效地浏览和操作数据。DataGrid可以与各种数据源绑定,包括Array、ArrayCollection、XMLList等...

    Flex Datagrid全选功能

    2. **全选功能需求**: 在许多应用中,用户可能需要一次性选择Datagrid中的所有记录,例如进行批量操作,如删除、编辑等。因此,为Datagrid添加全选功能可以提高用户体验。 3. **实现方法**: - **CheckBox**: 可以...

    flex下拉dataGrid

    ComboBox是一个允许用户从下拉列表中选择一个项目的控件,它可以有一个可编辑的文本输入字段。我们可以通过设置它的dataProvider来填充下拉选项,这些选项通常是从数据服务获取的数组集合。在用户点击下拉按钮时,...

    flex datagrid to excel

    1. **Flex DataGrid组件**:Flex DataGrid是Adobe Flex SDK中的一个组件,它提供了一种高效且可定制的方式来展示表格数据。开发者可以设置列头、排序、过滤和编辑等功能。DataGrid可以绑定到各种数据源,如...

    flex组件之DataGrid高级用法实例源码

    在Flex编程领域,DataGrid组件是开发者们常用的数据展示工具,尤其在处理大量结构化数据时,它能提供高效、可定制化的展示效果。本文将深入探讨Flex DataGrid的高级用法,通过实例源码来解析其核心特性,帮助开发者...

    FLEX的一个DataGrid例子

    每列可以设置标题、数据字段、宽度、是否可编辑等属性。例如: ```xml 姓名" dataField="name"/&gt; 年龄" dataField="age"/&gt; ``` 3. **数据绑定**: 要让DataGrid显示数据,我们需要将其绑定到数据源。数据...

    Flex DataGrid组件 使用详解

    3. **可编辑性**:用户可以通过editable属性控制是否允许编辑数据。在需要时,DataGrid可以使用itemEditor属性指定的编辑器来编辑单元格内容。 4. **排序**:通过sortableColumns属性,用户可以点击列标题对数据...

    Flex-DataGrid源码及资料

    2. 鼠标双击可编辑:在默认情况下,Flex DataGrid的单元格是只读的。为了实现鼠标双击编辑,我们需要监听GridEvent.DOUBLE_CLICK事件,并在事件触发时开启相应的单元格或行的编辑模式。这可能涉及到设置...

    Flex DataGrid 插入子组件

    ItemRenderer是DataGrid的一个关键概念,它是每个数据显示单元的可重用视图。通过创建自定义的ItemRenderer类,我们可以自由地设计每个单元格的外观,包括添加任意的子组件。 步骤如下: - 创建一个新的MX或Spark ...

    Flex DataGrid 内嵌AutoCompleteDataGrid

    Flex DataGrid 内嵌 AutoCompleteDataGrid 是一种在 Adobe Flex 应用程序中实现的数据展示技术,它结合了 DataGrid 和 AutoCompleteDataGrid 两种组件的功能,为用户提供了一个高效的、可搜索的数据表格视图。在Flex...

    FLEX4 s:dataGrid单元格弹出可文本

    在给定的标题“FLEX4 s:dataGrid单元格弹出可文本”中,我们关注的是如何实现点击`DataGrid`的单元格后弹出一个自定义组件,展示更多或更详细的信息。 在Flex4中,我们可以利用事件监听和自定义组件来实现这一功能...

    Flex FooterSpark DataGrid 表格制作

    7. **自定义扩展**: Spark DataGrid的模块化设计使得开发者能够轻松地扩展其功能,例如添加自定义列渲染器、编辑器,或者创建自定义的脚部组件以满足特定需求。 总之,"Flex FooterSpark DataGrid 表格制作"是一个...

    flex的dataGrid添加复选框(checkBox)

    2. **创建ArrayCollection**:然后,将这些对象添加到ArrayCollection中,ArrayCollection是Flex中常用的可绑定数据源。 ```actionscript var items:ArrayCollection = new ArrayCollection([ new Item({label: ...

    动态可编辑的DataGrid

    在IT行业中,动态可编辑的DataGrid是一种常见且强大的组件,尤其在开发用户界面时,用于展示和操作大量数据。Flex作为Adobe推出的一种开源富互联网应用程序(RIA)框架,提供了丰富的UI组件库,其中就包括了DataGrid...

    flex 的datagrid分页

    在Flex中,DataGrid组件是一个非常重要的数据展示控件,常用于显示大量的结构化数据,并支持排序、选择和编辑等功能。在能源监测软件的界面设计中,DataGrid组件往往用于呈现各种能源指标,如能耗、产量等,以便用户...

Global site tag (gtag.js) - Google Analytics