作者:手机用户2502858405 | 来源:互联网 | 2023-10-09 19:46
在企业级应用开发中AdvancedDataGrid和DataGrid使用的非常广。当然最基本的也是最常用的就是数据的直接绑定,固定列头和固定数据的列数。而这往往不能满足需求,企业应用
在企业级应用开发中AdvancedDataGrid 和DataGrid 使用的非常广。当然最基本的也是最常用的就是数据的直接绑定,固定列头和固定数据的列数。而这往往不能满足需求,企业应用的开发常常是以数据为中心,数据会经常变化比如增加了列头,删除某列的数据,群组子类的新增等等。这里就要根据后台数据完全的自动化生成了,也就是完全使用ActionScript来写,其实也很简单,flex的每段mxml标记都对应了相同的AS类,只是在某些细节上的实现有些不同.下面简单的例子供大家参考,相信能解决开发中的大部分问题。
如转载请注明原文章出处谢谢。
[Bindable]
public var dgSource:ArrayCollection = new ArrayCollection();
private var adDG:AdvancedDataGrid = new AdvancedDataGrid();
[Bindable]
public var newSource:ArrayCollection = new ArrayCollection();
protected function httpservice1_resultHandler(event:ResultEvent):void
{
dgSource = event.result.root.Item;
//遍历数据源
var ss:int = 0;
while(ss <((dgSource.getItemAt(0).value.string) as ArrayCollection).length)
{
var newObj:Object=new Object();
for(var s:int=0;s{
newObj[dgSource.getItemAt(s).duName] = dgSource.getItemAt(s).value.string[ss];
}
ss ++;
newSource.addItem(newObj);
}
adDG.dataProvider = newSource;
adDG.groupedColumns = getColumnGroupNames(dgSource);
adDG.sortableColumns = false;
adDG.sortExpertMode = false;
adDG.showInAutomatiOnHierarchy= false;
adDG.height = 400;
adDG.percentWidth = 100;
adDG.horizOntalScrollPolicy= ScrollPolicy.AUTO;
this.addElement(adDG);
}
//根据数据源格式生成相应的Column和ColumnGroupprivate function getColumnGroupNames(columnsSource:ArrayCollection):Array{var columnGrouNames:Array=new Array();if (columnsSource && columnsSource.length > 0){for (var i:int=0; i -1){columnGrouNames[column_index].children.push(column)}else{var groupName:AdvancedDataGridColumnGroup=new AdvancedDataGridColumnGroup();groupName.headerText=obj.duOwner;groupName.children=[column];columnGrouNames.push(groupName);}}else //如果当前列不是群组列则直接添加{columnGrouNames.push(column);}}}return columnGrouNames;}//判断群组是否存在//不存在则添加//存在则返回当前下标private function judgeGroupNameIfExist(groupSource:Array, name:String):int{for (var i:int=0; i
xml数据源
- Name Name 1 Name 2 Name 3 Name 4 Name 5
- Owner HR 1 HR 2 HR 3 HR 4 HR 5
- Type Labor 1 Labor 2 Labor 3 Labor 4 Labor 5
- Department One Zhang San 13.0000 14.0000 15.0000 16.0000 17.0000
- Department Two Li Shi 4.0000 5.0000 6.0000 7.0000 8.0000
- Department Three Wang Wu 9.0000 10.0000 11.0000 12.0000 13.0000
- Department Four Zhang San 5.0000 6.0000 7.0000 8.0000 9.0000
- Department Five Wang Wu 11.0000 12.0000 13.0000 14.0000 15.0000