`
pufan53
  • 浏览: 43545 次
  • 性别: 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表头,外加linechart的简单操作,值得学习!

    Flex dataGrid 表头添加按钮

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

    flex DataGrid 表头分组

    NULL 博文链接:https://windmark.iteye.com/blog/1716422

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

    因某些需要,DataGrid及其表头需要动态生成,网上的解决方案打多笼统,下面有个不错的解决方法,感兴趣的朋友可以参考下

    Flex4 带checkbox的DataGrid

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

    flex导出复杂excel

    AdvancedDataGrid导出复杂表头excel

    flex dataGrid 分页控件

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

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

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

    设置datagrid行背景色示例

    datagrid设行背景色示例,提供了继承好的datagrid子类,

    Flex动态生成可编辑的DataGrid具体实现代码

    DataGrid具有以下功能:表头是动态生成的、每行都是有序号的、每行都是可以编辑、插入、删除、修改,接下来为大家分享下Flex如何动态生成可编辑的DataGrid

    将复杂表头的AdvancedDataGrid导出EXCEL

    将复杂表头的AdvancedDataGrid导出EXCEL

    flex3的cookbook书籍完整版dpf(包含目录)

    3.4 节在容器中动态添加和移除子组件 3.5 节对容器使用基于约束的布局 3.6 节在容器内为子组件设置最大、最小尺寸 3.7 节为容器指定行和列的约束 3.8 节使用约束条件为文本创建排版流程(Layout Flows) 3.9 节在容器...

    complexgrid

    关于flex 4.6 sdk下复杂表头的开发包

    mergeableDataGrid

    flex的表格可以实现表头的column span,但是无法显示row span,这个资源是实现row span。

    asp.net知识库

    动态调用对象的属性和方法——性能和灵活性兼备的方法 消除由try/catch语句带来的warning 微软的应试题完整版(附答案) 一个时间转换的问题,顺便谈谈搜索技巧 .net中的正则表达式使用高级技巧 (一) C#静态成员和...

Global site tag (gtag.js) - Google Analytics