flex在DataGrid中添加checkbox复选框,并获取选中的值

来源:互联网 发布:彩虹网站监控源码 编辑:程序博客网 时间:2024/05/01 17:44

                                     flex在DataGrid中添加checkbox复选框,并获取选中的值

1、界面:注册事件,并获取子窗体的值

//选择专题区域
private  var ztqy:DBPJZTQY = null;
private function select_ztqy():void
{
   ztqy = new DBPJZTQY();
   ztqy.x = (this.stage.stageWidth-ztqy.width)/2;
   ztqy.y = (this.stage.stageHeight-ztqy.height)/2;
   ztqy.addEventListener("clickztqy",getParamztqy); //注意这里的时间名称
  PopupEffert.show(ztqy,this,true);
}
public function getParamztqy(e:Event):void
{
var s:String= ztqy.str_mc;
var ss:String= ztqy.str_dm;
}

<mx:Button click="select_ztqy()" />

2.界面:DBPJZTQY.mxml 

<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" width="614" height="536" creationComplete="init()" title="请选择行政地区">
<mx:Script>
<![CDATA[
import triman.common.PopupEffert;
import mx.events.DataGridEvent;
import mx.controls.CheckBox;
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
import mx.managers.PopUpManager;
import mx.utils.StringUtil;
import mx.controls.Alert;


public var str_xzqmc:String = "";
public var str_xzqdm:String = "";
private var arrdata:ArrayCollection = new ArrayCollection(); //保存结果
private function init():void
{
//成都 DMLXBM='14' DMBM '5101'
 wryjcService.getXZDQ('14','5101');
}
      
/**
* 得到选中的行政地区
* */
public function getSelectXZDQ():void
{  
  str_xzqdm ="";
  str_xzqmc ="";
  var i:int=0;
for each(var obj:Object in this.grid_xzdq.dataProvider){
 try{
   if( obj.checked || obj.checked==1){ //1/true  0/false  
     str_xzqdm = (str_xzqdm==""?arrdata[i]["DMBM"]:str_xzqdm+","+arrdata[i]["DMBM"]);
      str_xzqmc = (str_xzqmc==""?arrdata[i]["DMMC"]:str_xzqmc+","+arrdata[i]["DMMC"]);
   } 
 }catch(e:Error){
   Alert.show(e.message,"错误");
 }
i++;
}
}
private function datagridRowNum(oItem:Object,iCol:int):String{   

     var iIndex:int = arrdata.getItemIndex(oItem) + 1;   
     return String(iIndex);   
   }
/**
* 关闭当前界面
* */
  private function remove_window():void
  {
   PopupEffert.remove(this);
  }
  private function queding():void
  {
    this.getSelectXZDQ();
    var outgoingEvent:Event = new Event("clickXzqdm", true); //注意这里的事件名称
  dispatchEvent(outgoingEvent);
  remove_window();
  }
private function select_XZDQ(event:ResultEvent){
  arrdata = event.result as ArrayCollection;
  this.grid_xzdq.dataProvider = arrdata;
}
/**
* 请求失败返回结果
* */
   private  function fault_result(event:FaultEvent):void
{
     Alert.show("连接到服务器出现异常!"+event.message);

]]>
</mx:Script>
<mx:RemoteObject id="wryjcService" destination="wryjcService">
      <mx:method name="getXZDQ" concurrency="last"  result="select_XZDQ(event)" fault="fault_result(event)"/>
</mx:RemoteObject>
<mx:DataGrid width="100%" height="100%" id="grid_xzdq" sortableColumns="false" draggableColumns="false">
<mx:columns>
   <mx:DataGridColumn headerText=""  labelFunction="datagridRowNum" dataField="checked"  width="50" visible="false"  />
<mx:DataGridColumn headerText="选择"  width="100">
          <mx:itemRenderer>
  <mx:Component>
  <mx:HBox horizontalAlign="center">
  <mx:Script>
<![CDATA[
import mx.controls.dataGridClasses.DataGridListData;

private function initData():void
{
}

protected function cb_change_handler(event:Event):void
{
data.checked = !data.checked; //当点击checbox时,改变checked属性状态
}
]]>
</mx:Script>
<mx:CheckBox label="" selected="{data.checked}" change="cb_change_handler(event)"/>
</mx:HBox>
 </mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn headerText="行政地区名称" dataField="DMMC"/>
<mx:DataGridColumn headerText="行政地区代码" dataField="DMBM"/>

</mx:columns>
</mx:DataGrid>
<mx:HBox width="100%" height="44" paddingLeft="220" paddingTop="3">
<mx:Button label="确 定" click="queding()"/>
<mx:Button label="取 消" click="remove_window()"/>
</mx:HBox>

</mx:TitleWindow>

原创粉丝点击