您的位置:首页 > 其它

flex datagrid进行删除或增加操作后自动刷新

2010-08-26 15:46 489 查看
源码:

<?xml version="1.0" encoding="utf-8"?>
<s:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009"

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

xmlns:mx="library://ns.adobe.com/flex/mx" width="668" height="326"

creationComplete="initComponent()"

title="指标计量单位"

fontSize="15"

close="closeWindow()">

<s:layout>

<s:VerticalLayout />

</s:layout>

<fx:Declarations>

<mx:StringValidator id="sval_1" source="{targetTypeName}" property="text"

tooShortError="字符串太短了,请输入最少4个字符. "

tooLongError="字符串太长了,请输入最长20个字符. "

minLength="4" maxLength="20"

trigger="{myButton}" triggerEvent="click"

/>

<mx:StringValidator id="sval_2" source="{targetCal}" property="text"

tooShortError="字符串太短了,请输入最少4个字符. "

tooLongError="字符串太长了,请输入最长20个字符. "

minLength="4" maxLength="20"

trigger="{myButton}" triggerEvent="click"

/>

</fx:Declarations>
<fx:Script>

<![CDATA[

import com.adobe.serialization.json.JSON;
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.events.CloseEvent;
import mx.events.ListEvent;
import mx.managers.PopUpManager;
import mx.rpc.events.ResultEvent;
import mx.utils.URLUtil;
import mx.validators.Validator;
import org.osmf.utils.URL;

[Bindable]public static var mainApp:DataCenterTargetPreserve = null;

[Bindable]public var gsMyString:String;

[Bindable]public var gnMyNumber:Number;

[Bindable]public var acItemsSelected:Object;

[Bindable]

public var dataArray:ArrayCollection;

private function initComponent():void

{

var u:URLVariables=new URLVariables("temp="+Math.random());

var r:URLRequest=new URLRequest();

r.data=u;

r.method=URLRequestMethod.POST;

r.url=mainApp.urls+"/findTargetCal.do";

var l:URLLoader=new URLLoader();

l.load(r);

l.addEventListener(Event.COMPLETE, comp2);

}

function comp2(e:Event):void

{

var l:URLLoader=URLLoader(e.target);

var array:Array=JSON.decode(String(l.data)) as Array;

dataArray=new ArrayCollection(array);

myGrid.dataProvider=dataArray;

}

private function closeWindow():void

{

PopUpManager.removePopUp(this);

}//closeWindow

private function showFinalSelection(oEvent:Event):void

{

//mainApp.tiFinalSelection.text = oEvent.target.selectedItem.album;

}//showFinalSelection

protected function button1_clickHandler(event:MouseEvent):void

{

PopUpManager.removePopUp(this);

}

protected function button2_clickHandler(event:MouseEvent):void

{

var all:Array=Validator.validateAll([sval_1,sval_2]);

if(all.length==0){

var v:URLVariables=new URLVariables("targetTypeName="+targetTypeName.text+"&targetCal="+targetCal.text+"&temp="+Math.random());

var r:URLRequest=new URLRequest();

r.url=mainApp.urls+"/addTargetCal.do";

r.method=URLRequestMethod.POST;

r.data=v;

var l:URLLoader=new URLLoader();

l.load(r);

l.addEventListener(Event.COMPLETE,comp);

}else{

Alert.show("新增失败");

}

}

private function comp(e:Event):void{

var l:URLLoader = URLLoader(e.target);

var o:Object=URLUtil.stringToObject(l.data,";",true);

if(o.result=="add"){

Alert.show("新增成功");

var obj:Object=(JSON.decode(o.datas) as Object);

//dataArray.addItemAt(obj,0);

Alert.show(obj.targetCalId);

}

initComponent();

}

private function myClick(evt:CloseEvent):void{

//Alert.show("本次要删除的为"+mainDataGrid.selectedIndex);

if(evt.detail==Alert.YES){

//Alert.show(acItemsSelected.getItemAt(0).targetId);

var v:URLVariables = new URLVariables("id="+acItemsSelected.targetCalId+"&temp="+Math.random());

var r:URLRequest = new URLRequest();

r.url =mainApp.urls+"/deleteTargetCal.do" ;

r.method = URLRequestMethod.POST;

r.data=v;

var l:URLLoader = new URLLoader();

l.load(r);

//dataArray.removeItemAt(myGrid.selectedIndex);

l.addEventListener(Event.COMPLETE,comp1); //注册请求完成后 响应获取数据事件方法

}

}

private function comp1(e:Event):void

{

var l:URLLoader = URLLoader(e.target);

var o:Object = URLUtil.stringToObject(l.data, ";", true);

if(o.result=="delete"){

Alert.show("删除成功!","友情提示");

}

initComponent();

}

protected function button3_clickHandler(event:MouseEvent):void

{

if(myGrid.selectedItem==null){

Alert.show("请选择一项进行删除","友情提示");

}else{

var dlg_obj:Object=Alert.show("确认删除吗?", "友情提示!", Alert.YES|Alert.NO,null,myClick);

}

}

protected function button4_clickHandler(event:MouseEvent):void

{

if(myGrid.selectedItem==null){

Alert.show("请选择一项进行修订!","友情提示");

}else{

var v:URLVariables = new URLVariables("targetTypeName="+targetTypeName.text+"&targetCal="+targetCal.text+"&id="+acItemsSelected.targetCalId);

var r:URLRequest = new URLRequest();

r.url =mainApp.urls+"/updateTargetCal.do";

r.method = URLRequestMethod.POST;

r.data = v;

var l:URLLoader = new URLLoader();

l.load(r);

l.addEventListener(Event.COMPLETE,comp3); //注册请求完成后 响应获取数据事件方法

}

}

private function comp3(e:Event):void

{

var l:URLLoader = URLLoader(e.target);

var o:Object = URLUtil.stringToObject(l.data, ";", true);

if(o.result=="update"){

Alert.show("更新成功!","友情提示");

var obj:Object=(JSON.decode(o.datas) as Object);

//dataArray.setItemAt(obj,myGrid.selectedIndex);

}else{

Alert.show("操作失败!","友情提示");

}

initComponent();

}

protected function myGrid_itemClickHandler(event:ListEvent):void

{

acItemsSelected =myGrid.selectedItem;

}

]]>

</fx:Script>

<mx:Form width="651" height="282">

<mx:DataGrid width="616" height="160" id="myGrid" itemClick="myGrid_itemClickHandler(event)">

<mx:columns>

<mx:DataGridColumn headerText="计量名称" dataField="targetTypeName"/>

<mx:DataGridColumn headerText="计量符号" dataField="targetCal"/>

<mx:DataGridColumn visible="false" dataField="targetCalId" />

</mx:columns>

</mx:DataGrid>

<mx:HBox>

<s:Label width="33"/>

<mx:FormItem label="计量名称" >

<s:TextInput id="targetTypeName"/>

</mx:FormItem>

<mx:FormItem label="计量符号" >

<s:TextInput id="targetCal"/>

</mx:FormItem>

<mx:FormItem >

<s:Button label="新增" id="myButton" click="button2_clickHandler(event)" />

</mx:FormItem>

</mx:HBox>

<mx:FormItem >

</mx:FormItem>

<mx:HBox>

<s:Label width="250"/>

<mx:FormItem >

<s:Button label="删除" click="button3_clickHandler(event)"/>

</mx:FormItem>

<mx:FormItem >

<s:Button label="修改" click="button4_clickHandler(event)"/>

</mx:FormItem>

<mx:FormItem >

<s:Button label="刷新"/>

</mx:FormItem>

<mx:FormItem >

<s:Button label="关闭" click="button1_clickHandler(event)"/>

</mx:FormItem>

</mx:HBox>

</mx:Form>

</s:TitleWindow>

转自:http://javacrazyer.javaeye.com/blog/742801
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐