要做多个统计表,表头/列名都是已知的,表的内容跟据查询结果得到。那么可以把表头信息放在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组件,实现更丰富的用户界面和数据可视化。
当我们处理的数据需要进行分类或者分组时,Flex DataGrid 提供了表头分组的功能,这使得数据的展示更加有条理和易于理解。本文将详细探讨Flex DataGrid的表头分组特性及其实现方式。 首先,表头分组允许我们将数据...
老外做的功能有点复杂,我整理了其中一个简单的效果,在表头上加一个按钮。扩展的话可以实现数据过滤,或者下拉动态隐藏指定列(灵感都来自extjs呵呵)。 也可以在此下载:...
以下是一个关于如何在Flex中动态生成DataGrid及其表头的详细说明。 首先,我们需要了解基本的Flex组件和MXML语法。`<mx:Application>` 是Flex应用程序的基本容器,而`<mx:Script>` 用于放置ActionScript代码。`<mx:...
在实际应用中,我们常常会遇到一个问题:如何确保`Datagrid`中的表头和列内容正确对齐。标题"datagrid 4种解决table对齐"和描述"datagrid 4种解决方案 表头与列对齐"正是针对这一问题提出的不同解决策略。下面我们将...
在需要全选和反选功能时,通常会在表头中添加一个复选框,作为全选/反选的触发器。当用户点击这个复选框时,所有行中的复选框状态应随之改变。 1. **创建自定义DataGrid类**: 为了实现全选和反选功能,我们需要...
Flex DataGrid 是 Adobe Flex 中一个重要的组件,用于展示结构化数据。它以表格形式呈现,非常适合用来显示多列数据,并提供了排序、选择、编辑等多种功能。在这个教程中,我们将深入探讨 DataGrid 的基本使用和一些...
总结来说,Flex中的DataGrid和AdvancedDataGrid是强大且灵活的数据展示工具,它们可以与其他多种控件协同工作,满足各种复杂的数据展示和交互需求。理解和掌握这些知识点,将有助于构建高效、用户友好的Flex应用程序...
其中包含一个三种状态的checkbox,DataGrid代码中引用了 带多选框的DataGrid(AdvancedDataGrid) 表头有全选CheckBox,三种状态:全选、部分选择、无选择 如果改变目录结构,需要在CustomCheckBox.mxml中更改inner....
总结起来,实现Flex Datagrid checkbox全选功能主要涉及自定义数据列、表头渲染器和行渲染器,通过事件监听和状态同步来达到全选的效果。在实际应用中,可能还需要处理部分选中、反选等复杂逻辑,但上述步骤提供了一...
它提供了比基本DataGrid更丰富的功能,如多级表头、排序、分组、过滤和自定义渲染等。本文将深入探讨Flex应用中的AdvancedDataGrid表头皮肤设计与实现。 AdvancedDataGrid的表头皮肤是用户界面的重要组成部分,它...
在Flex中,DataGrid通常与ArrayCollection或XMLListCollection等数据源绑定,以便动态加载和显示数据。开发者可以通过定义columns属性来自定义列头,通过itemRenderer属性来定制单元格的显示样式。 然而,当数据...
在ActionScript中,可以通过动态创建`DataGridColumn`对象并将其添加到`DataGrid`的`columns`属性中来设置表头。 ```actionscript var column1:DataGridColumn = new DataGridColumn(); column1.headerText = "序号...
根据给定的文件信息,我们可以总结出关于Flex中带复选框的DataGrid的知识点,主要涉及Flex框架下的DataGrid组件及其自定义扩展,具体包括CheckBoxColumn、CheckBoxHeader和CheckBoxRenderer这三个类的设计与实现。...
这个功能在数据筛选和操作中非常有用,允许用户批量选择或取消选择表头中的某个属性,进而影响到对应列的数据。 首先,我们要理解`DataGrid`的基本结构。`<mx:DataGrid>`是MXML中的标签,用于定义数据网格。`data...
AdvancedDataGrid导出复杂表头excel
这是我自己开发的一个dataGrid分页的控件,上传的资源是一个打成包的flex项目,这个控件在查询数据时是与后台进行实时交互的,表格的表头样式是重写皮肤类进行定义的,而隔行变色是通过css来实现的。其中最重要的...
这是我自己开发的一个dataGrid分页的控件,上传的资源是一个打成包的flex项目,这个控件在查询数据时是与后台进行实时交互的,表格的表头样式是重写皮肤类进行定义的,而隔行变色是通过css来实现的。其中最重要的...
在Flex或类似的开发环境中,`Datagrid` 提供了高度自定义的特性,包括列宽、排序、分页等功能,以及对行样式的定制,如字体、颜色、边框等。 在“设置datagrid行背景色示例”中,我们看到开发者已经创建了一个继承...
Flex DataGrid 控件是Adobe Flex框架中的一个重要组成部分,它提供了一个灵活的方式来展示数据列表,并且支持多种功能,如排序、分组、筛选等。在某些场景下,用户可能需要实现对DataGrid中的所有行进行全选或反选的...