惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
B
Blog RSS Feed
量子位
aimingoo的专栏
aimingoo的专栏
V
Visual Studio Blog
Y
Y Combinator Blog
Vercel News
Vercel News
云风的 BLOG
云风的 BLOG
宝玉的分享
宝玉的分享
Engineering at Meta
Engineering at Meta
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
GbyAI
GbyAI
人人都是产品经理
人人都是产品经理
博客园 - 叶小钗
Stack Overflow Blog
Stack Overflow Blog
大猫的无限游戏
大猫的无限游戏
Microsoft Security Blog
Microsoft Security Blog
B
Blog
Last Week in AI
Last Week in AI
有赞技术团队
有赞技术团队
博客园 - 聂微东
腾讯CDC
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
J
Java Code Geeks

博客园 - 在路上...

Iphone的HEIC图片文件格式转换及相关开发工具 账号复活了 2015年,即将结束 CentOS 6 minimal 安装之后添加gnome Windows8离线安装.net framework 3.5 新年快到了,此记 Jquery中增加参数与Json转换代码 - 在路上... - 博客园 如何获取到informix for linux? 建国大业 《红》mp3下载 T42内存升级 随便一帖 Informix 9.40UC9 on Redhat Linux AS 4安装手记 Taking the web Offline and On the Desktop Flex上传文件功能 Flex实现QQ网页提取天气信息 乱弹ruby on rails目录下面的文件数有3万多个 Ruby on rails 2.0.2傻瓜入门之Hello world Javascript代码压缩、加密算法的破解分析及工具实现 【翻译】Oracle不同版本之间Export & Import的兼容性矩阵
flex中ComboBox对应的几种数据绑定 - 在路上... - 博客园
在路上... · 2010-03-09 · via 博客园 - 在路上...

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
 <mx:Script>
  <![CDATA[
   import mx.collections.XMLListCollection;
   import mx.collections.ArrayCollection;
   /*
    *这个例子重点演示了常见的到ComboBox的几种绑定,分别是基于数组、基于XML的数据、基于mx:Model的绑定
    对于XMl的情况,通常我们要定位到children()对应的XMLList来绑定
    */
   [Bindable]
   private var listdata:ArrayCollection;
   [Bindable]
   private var xmldata:XMLListCollection;
   [Bindable]
   private var xmlnode:XMLListCollection;
   [Bindable]
   private var xmllist:XMLList;

   private function init():void
   {
    //基于数组定义的绑定
    var list:Array=[{label: '中国', value: 'CN'}, {label: '美国', value: 'usa'}, {label: '英国', value: 'uk'}];
       //基于xml属性定义的绑定
    this.listdata=new ArrayCollection(list);
    var xml:XML=<root>
     <item label="datagrid" value="1"/>
     <item label="combobox" value="2"/>
     <item label="List" value="3"/>
    </root>;
    //构造一个xml节点定义XMLListCollection
    xmldata=new XMLListCollection(new XMLList([xml]));
    var xml1:XML=<root>
     <item>
      <label>java</label>
      <value>a</value>
     </item>
     <item>
      <label>c#</label>
      <value>b</value>
     </item>
     <item>
      <label>delphi</label>
      <value>c</value>
     </item>
    </root>;
    xmlnode=new XMLListCollection(new XMLList([xml1]));
    //直接构造一个XMLList对象
    xmllist=new XMLList();
    xmllist+=<item><label>白色</label><value>white</value></item>;
    xmllist+=<item><label>黑色</label><value>black</value></item>
   }

   private function binddata():void
   {
    if(cbBindType.selectedItem.value=="xml1"){
     cbList.dataProvider=xmldata.children();
     cbList.labelField="@label";
     DataGridColumn(grid1.columns[0]).dataField="@label";
     DataGridColumn(grid1.columns[1]).dataField="@value";
    }
    else if(cbBindType.selectedItem.value=="xml2"){
     cbList.dataProvider=xmlnode.children();
     cbList.labelField="label";
     DataGridColumn(grid1.columns[0]).dataField="label";
     DataGridColumn(grid1.columns[1]).dataField="value";
    }
    else if(cbBindType.selectedItem.value=="xml3"){
     cbList.dataProvider=xmllist;
     cbList.labelField="label";
     DataGridColumn(grid1.columns[0]).dataField="label";
     DataGridColumn(grid1.columns[1]).dataField="value";
    }
    else{
     cbList.dataProvider=listdata;
     cbList.labelField="label";
     DataGridColumn(grid1.columns[0]).dataField="label";
     DataGridColumn(grid1.columns[1]).dataField="value";
    }
    grid1.dataProvider=cbList.dataProvider;
    cbValueChanged();
   }
   
   private function cbValueChanged():void{
    var item:Object=cbList.selectedItem;
    if(item is XML){
     if(cbBindType.selectedItem.value=="xml1")
      tiPrompt.text=XML(item).@value;
     else
      tiPrompt.text=XML(item).value;
    }
    else{
     tiPrompt.text=item.value;
    }
   }
   
  ]]>
 </mx:Script>
 <mx:Model id="mType">
  <root>
   <item label="Xml属性绑定" value="xml1"/>
   <item label="Xml节点绑定" value="xml2"/>
   <item label="XmlList绑定" value="xml3"/>
   <item label="Array绑定" value="array"/>
  </root>
 </mx:Model>
 <mx:ComboBox x="52" y="20" id="cbBindType" dataProvider="{mType.item}" labelField="label" width="152">
 </mx:ComboBox>
 <mx:ComboBox x="52" y="70" id="cbList" width="152" change="cbValueChanged()">
 </mx:ComboBox>
 <mx:Label x="9" y="22" text="绑定类型"/>
 <mx:Button x="236" y="20" label="绑定" click="binddata()"/>
 <mx:TextInput x="52" y="100" id="tiPrompt" />
    <mx:DataGrid id="grid1" height="107" x="236" y="69" width="240">
        <mx:columns>
            <mx:DataGridColumn headerText="label" dataField="label"/>
            <mx:DataGridColumn headerText="value" dataField="value"/>
        </mx:columns>
    </mx:DataGrid>

</mx:Application>