您的位置:首页 > 其它

Flex DataGrid 编辑获取数据

2011-10-11 10:04 246 查看
<?xml version="1.0" encoding="utf-8"?>

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"

xmlns:s="library://ns.adobe.com/flex/spark"

xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">

<fx:Declarations>

<!-- 将非可视元素(例如服务、值对象)放在此处 -->

</fx:Declarations>

<fx:Script>

<![CDATA[

import mx.events.DataGridEvent;

import mx.controls.NumericStepper;

import mx.collections.ArrayCollection;

import mx.controls.listClasses.IDropInListItemRenderer;

import mx.controls.TextInput;

[Bindable]

private var myDP:ArrayCollection = new ArrayCollection([

{Artist:'Pavement', Album:'Slanted and Enchanted', Price:'(11.99)'},

{Artist:'Pavement', Album:'Crooked Rain, Crooked Rain', Price:'(10.99)'},

{Artist:'Pavement', Album:'Wowee Zowee', Price:'(12.99)'},

{Artist:'Pavement', Album:'Brighten the Corners', Price:'(11.99)'},

{Artist:'Pavement', Album:'Terror Twilight', Price:'(11.99)'}

]);

// Handle the itemEditBegin event.

private function onEditedBegin(event:DataGridEvent):void

{

// Get the name of the column being editted.

var colName:String = myDataGrid.columns[event.columnIndex].dataField;

var temp:String;

if(colName=="Price")

{

// Handle the event here.

event.preventDefault();

// Creates an item editor.

myDataGrid.createItemEditor(event.columnIndex,event.rowIndex);

// All item editors must implement the IDropInListItemRenderer interface

// and the listData property.

// Initialize the listData property of the editor.

IDropInListItemRenderer(myDataGrid.itemEditorInstance).listData =

IDropInListItemRenderer(myDataGrid.editedItemRenderer).listData;

// Copy the cell value to the NumericStepper control.

myDataGrid.itemEditorInstance.data = myDataGrid.editedItemRenderer.data;

// Add 20 percent to the current price.

temp = TextInput(myDataGrid.itemEditorInstance).text;

if (temp.indexOf("(") != -1){

temp = temp.replace("(","");

}

if (temp.indexOf(")") != -1){

temp = temp.replace(")","");

}

TextInput(myDataGrid.itemEditorInstance).text = temp;

}

}

private function onEditedEnd(event:DataGridEvent):void{

var colName:String = myDataGrid.columns[event.columnIndex].dataField;

var curText:String = TextInput(myDataGrid.itemEditorInstance).text;

if(colName=="Price")

{

// Handle the event here.

//event.preventDefault();

// Creates an item editor.

//myDataGrid.createItemEditor(event.columnIndex,event.rowIndex);

// All item editors must implement the IDropInListItemRenderer interface

// and the listData property.

// Initialize the listData property of the editor.

//IDropInListItemRenderer(myDataGrid.itemEditorInstance).listData =

//IDropInListItemRenderer(myDataGrid.editedItemRenderer).listData;

// Copy the cell value to the NumericStepper control.

//myDataGrid.itemEditorInstance.data = myDataGrid.editedItemRenderer.data;

// Add 20 percent to the current price.

if (curText != ""){

TextInput(myDataGrid.itemEditorInstance).text = "(" + curText + ")";

}

}

}

]]>

</fx:Script>

<fx:Style>

.testTip

{

border-color: #ffffdd;

color: #ff0000;

font-weight: bold;

}

</fx:Style>

<mx:DataGrid id="myDataGrid" dataProvider="{myDP}"

editable="true"

itemEditBegin="onEditedBegin(event);" itemEditEnd="onEditedEnd(event);"

rowHeight="60">

<mx:columns>

<mx:DataGridColumn dataField="Artist" />

<mx:DataGridColumn dataField="Album" width="130" />

<mx:DataGridColumn dataField="Price" editorDataField="text">

<mx:itemEditor>

<fx:Component>

<mx:TextInput/>

</fx:Component>

</mx:itemEditor>

</mx:DataGridColumn>

</mx:columns>

</mx:DataGrid>

</s:Application>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: