`

flex之mx:DataGrid

    博客分类:
  • FLEX
阅读更多

    对dataGrid中常见的情况作了试验,下面演示了几种用法:
    (1).在datagrid中根据item的数据触发的动作
    (2).演示item中的数据改写
    (3).演示不依赖于数据源的checkbox的使用

xml数据源代(index.xml)码如下:

<?xml version='1.0' ?>
<Msg exeCode="000">
<data empty="false">
   <entry>
    <key>bb</key>
    <value>BB</value>
   </entry>
   <entry>
    <key>aa</key>
    <value>BB</value>
   </entry>
   <entry>
    <key>cc</key>
    <value>
     <Book name="ASP.net" price="$12.5" />
     <Book name="Base.net" price="$12.5" />
     <Book name="C++.net" price="$12.5" />
    </value>
   </entry>
</data>
</Msg>

演示mxml页面如下: <?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Script>
        <![CDATA[
       
         import mx.controls.CheckBox;
         import mx.rpc.events.ResultEvent;
         import mx.controls.Alert;
         import flash.events.Event;
         import flash.net.URLLoader; 
         import mx.events.CloseEvent;
         import flash.net.URLRequest;

         private function loadApp():void {
             var loader:URLLoader = new URLLoader();
             var request:URLRequest = new URLRequest("index.xml");
             var variables:URLVariables = new URLVariables();
             loader.load(request);
             loader.addEventListener(Event.COMPLETE, onComplete);
         }
       
         private function onComplete(event:Event):void
         {
             var loader:URLLoader = event.target as URLLoader;
             if (loader != null) {
                 var externalXML:XML = new XML(loader.data);
                 bookdg.dataProvider = externalXML.data.entry.(key=="cc").value.Book;
             }
             else {
                 Alert.show("loader is not a URLLoader!");
             }
         }
       
          public function labelChangeHandler(item: XML,colName:DataGridColumn):String {
             return "[" + item.@price + "]";
           }
         
           public function buttonDel() : void {
               Alert.okLabel="确定";
               Alert.cancelLabel="取消";
             Alert.show("危险操作,一经删除无法恢复! 你确认要删除吗", "警告", Alert.OK |Alert.CANCEL ,this, alertListener);
           }
         
         private function alertListener(eventObj:CloseEvent):void {
             if (eventObj.detail==Alert.OK) {
                 Alert.show(bookdg.selectedItem.valueOf().@name);
                 //删除动作
             }
         }
       
         //用于存储checkbox对象
         public var selects : Object = new Object();
         public function selectHandler(obj:CheckBox) : void {
             if(obj.selected){
                 selects[bookdg.selectedItem.valueOf().@name] = true;
             }else{
                 selects[bookdg.selectedItem.valueOf().@name] = false;
             }
         }
       
         public function showSelectedResult() : void {
             for (var key : String in selects) {
                 Alert.show(key + ":" + selects[key]);
                 //作你要根据checkbox来做的事情
             }
         }

         ]]>
    </mx:Script>
    <mx:Panel width="100%" height="100%">
      <mx:VBox width="100%" horizontalAlign="center">
        <mx:Text text="代码演示"/>
        <mx:DataGrid id="bookdg">
            <mx:columns>
                <mx:DataGridColumn headerText="选择" width="80" textAlign="center">
                    <mx:itemRenderer>
                     <mx:Component>
                          <!-- 演示不依赖于数据源的checkbox的使用 -->
                           <mx:CheckBox label="{data.attribute('name')}" click="outerDocument.selectHandler(this);"/>
                           <!--
                                 如果name不是属性而是子节点,那直接用data.name就出来了,
                                 这里不能用@name来取属性!
                           -->
                     </mx:Component>
                    </mx:itemRenderer>
                </mx:DataGridColumn>
                <mx:DataGridColumn headerText="price" dataField="@price"/>
                <!-- 演示数据改写 -->
                <mx:DataGridColumn headerText="price" labelFunction="labelChangeHandler"/>
                <!-- 演示在datagrid中根据item的数据触发的动作 -->
                <mx:DataGridColumn headerText="操作" width="80" textAlign="center">
                    <mx:itemRenderer>
                     <mx:Component>
                         <!--
                              在itemRenderer内部提用方法需要加上outerDocument.方法,
                              或者Application.application.方法
                          -->
                         <mx:LinkButton label="删除" click="outerDocument.buttonDel()"></mx:LinkButton>
                     </mx:Component>
                    </mx:itemRenderer>
                </mx:DataGridColumn>
            </mx:columns>
        </mx:DataGrid>
        <mx:Button label="提交" click="loadApp();"/>
        <mx:Button label="显示选择结果" click="showSelectedResult();"/>
      </mx:VBox>
    </mx:Panel>
</mx:Application>
分享到:
评论

相关推荐

    Flex(mx:DataGrid)实现数据过滤显示

    MX:DataGrid是Flex中的一个组件,用于展示数据集并进行交互操作,如排序、选择和编辑。本篇文章将重点讲解如何在Flex中利用MX:DataGrid实现数据过滤显示的功能。 首先,数据过滤是指根据特定条件筛选数据,只显示...

    Flex实现分页显示功能(mx:DataGrid)

    本篇将聚焦于如何使用Adobe Flex来实现分页显示功能,特别是通过mx:DataGrid组件。 Flex是一种基于ActionScript和MXML的开源框架,用于构建富互联网应用程序(RIA)。mx:DataGrid是Flex提供的一个强大组件,可以...

    FLEX的一个DataGrid例子

    在Flex开发中,DataGrid控件是一个非常重要的组件,它被广泛用于展示和操作结构化的数据,例如数据库表格或者XML列表。本例子旨在帮助开发者更好地理解和应用DataGrid,通过实例来学习其基本功能和特性。 DataGrid...

    Flex itemRenderer的详细教程

    在 Flex 开发中,ItemRenderer 是一种非常强大的工具,它允许开发者自定义列表(List)、数据网格(DataGrid)等控件中每一项的外观和行为。通过 ItemRenderer,我们可以实现更加灵活和动态的界面设计。 #### 二、...

    flex datagrid

    Flex DataGrid 是 Adobe Flex 中一个重要的组件,用于展示结构化数据。它以表格形式呈现,非常适合用来显示多列数据,并提供了排序、选择、编辑等多种功能。在这个教程中,我们将深入探讨 DataGrid 的基本使用和一些...

    Flex调用xml通过DataGrid遍历简单示例

    &lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="service.send()" &gt; &lt;mx:Script&gt; ... &lt;mx:DataGrid width="300" dataProvider="{slides}"/&gt; &lt;/mx:Application&gt;

    Flex教程之DataGrid用法

    ### Flex教程之DataGrid用法详解 #### 一、引言 在Flex开发中,`DataGrid`是一个非常重要的UI组件,它能够以表格形式展示数据集合,支持数据的排序、筛选等功能。本文将详细介绍Flex中`DataGrid`控件的使用方法,...

    Flex创建可编辑以及分页的DataGrid

    最后,我们需要监听`PagingControl`的事件,如`change`事件,以便在用户切换页面时更新DataGrid: ```actionscript pagingCtrl.addEventListener(PagingEvent.CHANGE, onPagingChange); function onPagingChange...

    Flex dataGrid实现数据过滤

    原理就是ArrayCollection的filterFunction的使用。是根据老外一个帖子改的,其他下载地址在 :http://www.zuidaima.com/share/1714555305004032.htm

    Flex Datagrid checkbox实现

    Flex Datagrid 是Adobe Flex框架中用于展示数据集的组件,它允许开发者以表格形式展示数据,并提供多种交互功能。在Flex应用中,Datagrid经常被用于处理和展示大量的结构化数据。在标题“Flex Datagrid checkbox实现...

    Flex动态创建DataGrid设置图片

    在Flex开发中,DataGrid控件是用于展示数据集的常用组件,它可以显示多行多列的数据,并且具有丰富的自定义功能。本教程主要聚焦于如何在Flex中动态创建DataGrid,并向其中添加图片,这在创建交互式、富媒体应用时...

    flex 数据绑定 dataGrid.rar

    Flex数据绑定是Adobe Flex开发中的核心特性之一,它允许开发者将UI组件的属性与应用程序的数据模型直接关联。在本示例中,我们关注的是如何在Flex中使用数据绑定技术来操作DataGrid组件,这是一个用于展示表格数据的...

    DataGrid控件使用及HTTPService参数传递说明

    在Flex开发中,DataGrid控件是用于展示数据表格的强大工具,它允许用户对大量数据进行排序、筛选和编辑。本教程将深入讲解如何有效利用DataGrid控件,并结合HTTPService进行参数传递,以实现与服务器的数据交互。...

    flex DataGrid 表头分组

    在Flex开发中,数据网格(DataGrid)是用于展示大量结构化数据的常用组件。它允许用户以表格的形式查看和操作数据。当我们处理的数据需要进行分类或者分组时,Flex DataGrid 提供了表头分组的功能,这使得数据的展示...

    Flex使用弹出窗口为DataGrid添加新数据

    在Flex开发中,DataGrid组件通常用于展示结构化数据,并允许用户进行交互操作。而TitleWindow则是一种常用的小型窗口,常用来显示弹出式对话框。本篇将深入探讨如何利用Flex 3中的TitleWindow组件来为DataGrid添加新...

    在Flex的DataGrid中使用CheckBox

    ### 在Flex的DataGrid中使用CheckBox #### 一、引言 在Flex应用程序开发中,DataGrid 是一种常用的UI组件,用于展示数据列表,并提供了一系列的功能,如排序、过滤等。有时,为了增加用户交互性或实现特定功能,...

    flex 中datagrid 动态攺变行颜色

    在Flex开发中,Datagrid是一种常用的组件,用于展示数据表格。在特定场景下,我们可能需要根据数据的状态或用户交互动态地改变Datagrid中的行颜色,以提供更好的视觉反馈和用户体验。下面将详细介绍如何在Flex中实现...

    flex4 dataGrid 日期格式转换

    在Flex 4中,`DataGrid` 是一种用于展示数据表格的组件,它允许开发者以网格形式展示数据。在处理日期字段时,我们可能需要将日期格式化为特定的样式以便用户更容易理解。本篇文章将深入讲解如何在Flex 4的`DataGrid...

    flex动态生成datagrid表头

    3. **设置列数据**:通过遍历数据源,动态创建并添加DataGridColumn到DataGrid: ```actionscript for each (var column:Object in columns) { var dataGridColumn:DataGridColumn = new DataGridColumn(); ...

Global site tag (gtag.js) - Google Analytics