`
pufan53
  • 浏览: 44932 次
  • 性别: Icon_minigender_2
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Flex中动态添加DataGrid表头和记录

阅读更多
要做多个统计表,表头/列名都是已知的,表的内容跟据查询结果得到。那么可以把表头信息放在XML中作为配置文件,在程序中读取。

TableColumn.xml:
<Data>
    <columns name="table1">
      <column>
        <dataField>col1</dataField>
        <headerText>项目分类</headerText>
        <width>100</width>
      </column>
      <column>
        <dataField>col2</dataField>
        <headerText>项目个数</headerText>
        <width>100</width>
      </column>
    </columns>
    
    <columns name="table2">
        <dataField>col1</dataField>
        <headerText>项目分类</headerText>
        <width>100</width>
      </column>
      <column>
        <dataField>col2</dataField>
        <headerText>项目个数</headerText>
        <width>100</width>
      </column>
        <dataField>col3</dataField>
        <headerText>比例(%)</headerText>
        <width>100</width>
      </column>
    </columns>
</Data>


initTable显示DataGrid时调用下面的initTable方法,参数用来指定<columns name="table1">中的name属性内容,如initTable("table1");
mxml代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml">
	       
<mx:XML id="TableColumn" source="TableColumn.xml"/>
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection; 
import mx.controls.dataGridClasses.DataGridColumn; 

[Bindable]
public var tableData:ArrayCollection= new ArrayCollection();//表数据   

    public function initTable(name:String)
    {
    	this.initialize();
        
        //设置表头
        var xml:XML=this.TableColumn;
        var lstColumns:XMLList=xml.columns.(@name==name).column;
        setTableColumns(lstColumns);
        switch(name)
	{
            case "table1":
                tableData=new ArrayCollection([  //指定统计表的数据源
                  {col1:"type1",col2:"12"},
                  {col1:"tpye2",col2:"6"},
                  {col1:"type3",col2:"7"}
                  ]);
                break;
            case "table2":
                tableData=new ArrayCollection([  //指定统计表的数据源
                  {col1:"type1",col2:"3",col3:"25%"},
                  {col1:"tpye2",col2:"3",col3:"25%"},
                  {col1:"type3",col2:"3",col3:"25%"},
                  {col1:"type3",col2:"3",col3:"25%"}
                  ]);
                break;
            default:
                break;

        }

        //指定统计表的数据源
	tableData=data;
	   
    } 
    
    /*
        将XML转为Array,Array中的对象为DataGridColumn类型。
        用这个Array设置DataGrid的columns属性。
    */
    private function setTableColumns(lstcolumns:XMLList)
    {
    	var columns:Array=new Array();
        for each(var child:XML in lstcolumns)
        {lstcolumns.toLocaleString()
        	var obj:Object=new Object();
        	var column:DataGridColumn=new DataGridColumn();
        	for each(var ite:XML in child.children())
        	{
        		obj[ite.name().toString()]=ite.toString();
        	}
        	column.dataField=obj.dataField;
        	column.headerText=obj.headerText;
    		column.width=obj.width;
        	columns.push(column);
        }
    	myTable.columns=columns;
    }

]]>

</mx:Script>
<mx:Panel id="chartContainer" title="统计表" width="100%" height="100%">
     <mx:Label text="统计结果" left="20" top="10" fontSize="16"  fontWeight="bold"/>
     <mx:DataGrid id="myTable"  dataProvider= "{tableData}" enabled="false" top="50" horizontalCenter="0" /> 
</mx:Panel>
</mx:Canvas>

分享到:
评论

相关推荐

    flex动态生成datagrid表头

    在Flex开发中,数据网格(DataGrid)是一种常用的组件,用于显示...总的来说,通过学习Flex中的动态生成DataGrid表头和LineChart的简单操作,开发者可以更好地理解和应用Flex组件,实现更丰富的用户界面和数据可视化。

    flex DataGrid 表头分组

    当我们处理的数据需要进行分类或者分组时,Flex DataGrid 提供了表头分组的功能,这使得数据的展示更加有条理和易于理解。本文将详细探讨Flex DataGrid的表头分组特性及其实现方式。 首先,表头分组允许我们将数据...

    Flex dataGrid 表头添加按钮

    老外做的功能有点复杂,我整理了其中一个简单的效果,在表头上加一个按钮。扩展的话可以实现数据过滤,或者下拉动态隐藏指定列(灵感都来自extjs呵呵)。 也可以在此下载:...

    Flex中如何动态生成DataGrid以及动态生成表头

    以下是一个关于如何在Flex中动态生成DataGrid及其表头的详细说明。 首先,我们需要了解基本的Flex组件和MXML语法。`&lt;mx:Application&gt;` 是Flex应用程序的基本容器,而`&lt;mx:Script&gt;` 用于放置ActionScript代码。`&lt;mx:...

    datagrid 4种解决table对齐

    在实际应用中,我们常常会遇到一个问题:如何确保`Datagrid`中的表头和列内容正确对齐。标题"datagrid 4种解决table对齐"和描述"datagrid 4种解决方案 表头与列对齐"正是针对这一问题提出的不同解决策略。下面我们将...

    Flex dataGrid 全选、反选

    在需要全选和反选功能时,通常会在表头中添加一个复选框,作为全选/反选的触发器。当用户点击这个复选框时,所有行中的复选框状态应随之改变。 1. **创建自定义DataGrid类**: 为了实现全选和反选功能,我们需要...

    flex datagrid

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

    Flex中DataGrid和其它控件使用

    总结来说,Flex中的DataGrid和AdvancedDataGrid是强大且灵活的数据展示工具,它们可以与其他多种控件协同工作,满足各种复杂的数据展示和交互需求。理解和掌握这些知识点,将有助于构建高效、用户友好的Flex应用程序...

    Flex4 带checkbox的DataGrid

    其中包含一个三种状态的checkbox,DataGrid代码中引用了 带多选框的DataGrid(AdvancedDataGrid) 表头有全选CheckBox,三种状态:全选、部分选择、无选择 如果改变目录结构,需要在CustomCheckBox.mxml中更改inner....

    flex Datagrid checkbox全选

    总结起来,实现Flex Datagrid checkbox全选功能主要涉及自定义数据列、表头渲染器和行渲染器,通过事件监听和状态同步来达到全选的效果。在实际应用中,可能还需要处理部分选中、反选等复杂逻辑,但上述步骤提供了一...

    Flex应用AdvancedDataGrid表头皮肤

    它提供了比基本DataGrid更丰富的功能,如多级表头、排序、分组、过滤和自定义渲染等。本文将深入探讨Flex应用中的AdvancedDataGrid表头皮肤设计与实现。 AdvancedDataGrid的表头皮肤是用户界面的重要组成部分,它...

    flex-datagrid-advancedDataGrid-demo

    在Flex中,DataGrid通常与ArrayCollection或XMLListCollection等数据源绑定,以便动态加载和显示数据。开发者可以通过定义columns属性来自定义列头,通过itemRenderer属性来定制单元格的显示样式。 然而,当数据...

    Flex教程之DataGrid用法

    在ActionScript中,可以通过动态创建`DataGridColumn`对象并将其添加到`DataGrid`的`columns`属性中来设置表头。 ```actionscript var column1:DataGridColumn = new DataGridColumn(); column1.headerText = "序号...

    flex带复选框的datagrid

    根据给定的文件信息,我们可以总结出关于Flex中带复选框的DataGrid的知识点,主要涉及Flex框架下的DataGrid组件及其自定义扩展,具体包括CheckBoxColumn、CheckBoxHeader和CheckBoxRenderer这三个类的设计与实现。...

    flex DataGrid 嵌套复选按钮

    这个功能在数据筛选和操作中非常有用,允许用户批量选择或取消选择表头中的某个属性,进而影响到对应列的数据。 首先,我们要理解`DataGrid`的基本结构。`&lt;mx:DataGrid&gt;`是MXML中的标签,用于定义数据网格。`data...

    flex导出复杂excel

    AdvancedDataGrid导出复杂表头excel

    flex dataGrid 分页控件

    这是我自己开发的一个dataGrid分页的控件,上传的资源是一个打成包的flex项目,这个控件在查询数据时是与后台进行实时交互的,表格的表头样式是重写皮肤类进行定义的,而隔行变色是通过css来实现的。其中最重要的...

    flex dataGrid分页 皮肤 隔行变色 实时交互

    这是我自己开发的一个dataGrid分页的控件,上传的资源是一个打成包的flex项目,这个控件在查询数据时是与后台进行实时交互的,表格的表头样式是重写皮肤类进行定义的,而隔行变色是通过css来实现的。其中最重要的...

    设置datagrid行背景色示例

    在Flex或类似的开发环境中,`Datagrid` 提供了高度自定义的特性,包括列宽、排序、分页等功能,以及对行样式的定制,如字体、颜色、边框等。 在“设置datagrid行背景色示例”中,我们看到开发者已经创建了一个继承...

    flex datagrid checkbox 全选/反选

    Flex DataGrid 控件是Adobe Flex框架中的一个重要组成部分,它提供了一个灵活的方式来展示数据列表,并且支持多种功能,如排序、分组、筛选等。在某些场景下,用户可能需要实现对DataGrid中的所有行进行全选或反选的...

Global site tag (gtag.js) - Google Analytics