flex的datagrid内嵌combobox和itemclick

来源:互联网 发布:下载手机电视直播软件 编辑:程序博客网 时间:2024/06/07 19:20

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init();"
 xmlns="*" fontFamily="宋体" fontSize="12" width="740" height="440"
 paddingLeft="5" paddingTop="5" paddingRight="5" horizontalScrollPolicy="off"
  verticalScrollPolicy="off" xmlns:ns2="*">
<mx:HTTPService id="hscid" url="http://192.168.1.159/attemper/group.jsp" resultFormat="text"
 showBusyCursor="true" result="hsResult(event)"/>
<mx:HTTPService id="hscom" url="http://192.168.1.159/attemper/groupuser.jsp" showBusyCursor="true"
   resultFormat="xml" result="hsComResult(event)">
<mx:request>
<group>{cid.selectedItem.data}</group>
</mx:request>
</mx:HTTPService>
<mx:Script>
 <![CDATA[
  import mx.controls.Alert;
  import mx.managers.PopUpManager;   
  import mx.rpc.events.*;
  import mx.events.ListEvent;
  private var selectedItems:Array = new Array();
  private var bpage:Boolean=false;
  private var i:int;
  private var str:String=""; 
  [Bindable]  
  private var itemsXML:XMLList;
  [Bindable]  
  private var dataXML:XMLList;  
  [Bindable]
        public var levels: Array = [ {label:"听说", data:"0"}, {label:"只听", data:"1"} ];
     
  System.useCodePage=true;
       
  private function init():void{
   itemsXML=new XMLList();
   hscid.send(); 
   selectedItems = new Array();
         datalist.addEventListener(SelectEvent.Item_ID,SelectHandler);
   verify.setFocus();   
  }
  public function submit():void{
   dataXML=new XMLList();
   //datalist.dataProvider=""; 
   hscom.send();
  }
   private function hsResult(event:ResultEvent):void{ //下拉框有结果    
    itemsXML=XMLList(hscid.lastResult.valueOf());      
        }
        private function hsComResult(event:ResultEvent):void{ //表格有结果         
    dataXML=XMLList(XML(event.result.valueOf()).children());
            datalist.dataProvider = dataXML;
            selectedItems = new Array();
            btnall.enabled= dataXML.length()>0; 
            btndis.enabled=btnall.enabled;
        }
      
        private function onSelectAll():void {                  
          str="";
         selectedItems = new Array();
         for(i=0;i<dataXML.length();i++)
   {    
    dataXML[i].select="1";
    //items[i]=dataXML[i].gid;
    if(dataXML[i].gid.toString().length>0){
    selectedItems.push(dataXML[i]);
    if(str.length>0)str+=";";    
    str+=dataXML[i].gid;
    }
   }
   
   if(str.length>0){
    //bpage=true;  
    tip.text=str;  
    //cDelCom.verify(str);
   }else{
      tip.text="没有选择";
      //delcom.enabled=false;
     }    
   }
   
  //关闭页面
  public function funClose(k:int):void{
   if(0==k){
    parentApplication.tip.text="操作成功";
   }else{
    parentApplication.tip.text="没有完成";
   }   
   PopUpManager.removePopUp(this); 
  }
  private function SelectHandler( event:SelectEvent ) : void
  {
   event.data.select=1-event.data.select;
   datalist.dataProvider.itemUpdated(event.data,"select");
   var i:int;
   for(i=0;i<selectedItems.length;i++)
   {
    if(selectedItems[i].gid==event.data.gid)
    break;
   }
   if(i==selectedItems.length)
   selectedItems.push(event.data);
   
   if(0==event.data.select){
    selectedItems[i].gid="";
   //tip.text = event.type+" cid: "+event.data.cid; 
   }
   else{
    //delcom.enabled=true;
   //tip.text = event.type+" cid: "+event.data.cid+" cname="+event.data.cname;
   }
  }
  private function onSelectDis():void{
   str="";
         selectedItems = new Array();
         for(i=0;i<dataXML.length();i++)
   {    
    if(dataXML[i].select=="1"){
    dataXML[i].select="0";
    }else{
    dataXML[i].select="1";
    //items[i]=dataXML[i].gid;
    if(dataXML[i].gid.toString().length>0){
    selectedItems.push(dataXML[i]);
    if(str.length>0)str+=";";    
    str+=dataXML[i].gid;
    }
    }
   }
   
   if(str.length>0){
    //bpage=true;  
    tip.text=str;  
    //cDelCom.verify(str);
   }else{
      tip.text="没有选择";
      //delcom.enabled=false;
     }   
   //if(datalist.selectedIndex>-1){
   // tip.text ="";
   // bpage=true;
    //var ComUpdate1:ComUpdate = ComUpdate(PopUpManager.createPopUp(this,ComUpdate,true));
    //ComUpdate1.cid=datalist.selectedItem.cid;
    //PopUpManager.centerPopUp(ComUpdate1);
   // submit();
   // tip.text ="修改操作结束";
   //}else
   //tip.text ="(点击行)选择后才能更新";
  }
  public function onChange(event:Event,item:Object):void{
   if(ComboBox(event.target).selectedIndex!=item.level)
   {
    item.level=ComboBox(event.target).selectedIndex;
    
    tip.text ="已经发送更新权限命令";
   }
  }
 public function changeitem(event:ListEvent):void{
   tip.text ="选择的电话号码是:"+event.currentTarget.selectedItem.phone;   
  }
  private function statelabel(item:Object, column:DataGridColumn):String {
   if(item.state ==0)
      return "空闲";
   else if(item.state ==1)
      return "拨号中";
   else if(item.state ==2)
      return "振铃";
   else if(item.state ==3)
      return "通话中";
   else if(item.state ==4)
      return "不可用";
   else
    return "通话失败";
  }
 ]]>
</mx:Script>
<mx:Style source="call.css" />
<mx:Component id="levellst">
 <mx:ComboBox dataProvider="{outerDocument.levels}" selectedIndex="{data.level}" change="outerDocument.onChange(event,data)"/>
</mx:Component>           
<mx:Panel title="查看分组" width="730" height="430" horizontalAlign="center" verticalAlign="middle">
<mx:Form defaultButton="{verify}" styleName="frm">
 <mx:Grid styleName="tab">
  <mx:GridRow height="30">   
   <mx:GridItem styleName="tcell" width="700">
    <mx:FormItem label="分组名称:" required="true">
     <mx:ComboBox width="150" id="cid" dataProvider ="{itemsXML}" rowCount="7"/>      
    </mx:FormItem>
    <mx:Button label="确认" click="submit();" id="verify"/>     
    <mx:Label id="tip" text="" width="267"/> 
   </mx:GridItem> 
  </mx:GridRow>  
  <mx:GridRow>   
   <mx:GridItem styleName="tc" width="700">
   <mx:VBox>
    <mx:DataGrid width="100%" id="datalist" itemClick="changeitem(event)" height="305">
    <mx:columns>
    <mx:Array>
     <mx:DataGridColumn dataField="select" itemRenderer="{new ClassFactory(iCheckBox)}" headerText="选择" width="45"/>   
     <mx:DataGridColumn dataField="gid" headerText="组号"/>
     <mx:DataGridColumn dataField="cname" headerText="姓名"/>    
     <mx:DataGridColumn dataField="phone" headerText="电话"/>
     <mx:DataGridColumn dataField="dept" headerText="部门"/>     
     <mx:DataGridColumn dataField="level" itemRenderer="{levellst}" headerText="权限" width="65"/>
     <mx:DataGridColumn dataField="state" labelFunction="statelabel" headerText="状态"/>
    </mx:Array>
    </mx:columns>
    </mx:DataGrid>
    <mx:HBox styleName="newdiv">
    <mx:Button label="全选" click="onSelectAll()" enabled="false" id="btnall"/>
    <mx:Button label="反选" id="btndis" enabled="false" click="onSelectDis()"/>
       </mx:HBox>
   </mx:VBox>   
   </mx:GridItem>   
  </mx:GridRow>  
 </mx:Grid> 
</mx:Form>
</mx:Panel>
</mx:Application>

原创粉丝点击