| don_Lino |
21.01.2010 05:54 |
вопрос по AdvancedDataGrid, dataProvider и itemRenderer
Нужно что бы в столбце Task и Worker были данные из SimpleFlatData.as, а к adcg1:AdvancedDataGridColumnGroup применить itemRenderer который зарисовывать к-во ячеек данной группы, беря значение к-ва (Duration) в SimpleFlatData.as
Подскажите как это можно реализовать?
trainingProject.mxml :
Код AS3:
?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="init()">
<mx:Script>
<![CDATA[
import mx.controls.Button;
import mx.controls.AdvancedDataGrid;
import MyGrpdDG;
private function init():void
{
var my_GrpdDG: MyGrpdDG = new MyGrpdDG();
var myDG: AdvancedDataGrid = new AdvancedDataGrid();
myDG = my_GrpdDG.createDG();
addChild(myDG);
}
]]>
</mx:Script>
</mx:Application>
SimpleFlatData.as :
Код AS1/AS2:
[Bindable]
private var dpFlat:ArrayCollection = new ArrayCollection([
{Task:"Task 1", Worker:"Worker 1", Duaration:2},
{Task:"Task 2", Worker:"Worker 2", Duaration:4},
{Task:"Task 3", Worker:"Worker 3", Duaration:4},
{Task:"Task 4", Worker:"Worker 1", Duaration:1},
{Task:"Task 5", Worker:"Worker 2", Duaration:3},
{Task:"Task 6", Worker:"Worker 3", Duaration:2},
{Task:"Task 7", Worker:"Worker 1", Duaration:5},
{Task:"Task 8", Worker:"Worker 2", Duaration:4},
{Task:"Task 9", Worker:"Worker 3", Duaration:4},
{Task:"Task 10", Worker:"Worker 2", Duaration:3}
]);
и MyGrpdDG.as :
Код AS1/AS2:
package
{
import mx.collections.*;
import mx.controls.*;
import mx.controls.advancedDataGridClasses.*;
import mx.core.UIComponent;
import mx.collections.ArrayCollection;
include "SimpleFlatData.as";
public class MyGrpdDG extends UIComponent
{
public function MyGrpdDG():void
{
}
public function createDG():AdvancedDataGrid
{
var ac:ArrayCollection;
var gc:GroupingCollection;
var ad:AdvancedDataGrid;
gc = new GroupingCollection();
gc.source = ac;
var grouping:Grouping = new Grouping();
grouping.fields = new Array(new GroupingField("Date"));
gc.grouping = grouping;
var column1:AdvancedDataGridColumn = new AdvancedDataGridColumn("Задача");
column1.dataField = "Task";
var column2:AdvancedDataGridColumn = new AdvancedDataGridColumn("Сотрудник");
column2.dataField = "Worker";
var adcg1:AdvancedDataGridColumnGroup = new AdvancedDataGridColumnGroup("Время");
adcg1.dataField = "Time";
var i:int;
var columnD:AdvancedDataGridColumn = new AdvancedDataGridColumn("");
for ( i = 0; i < 23; i++)
{
columnD = new AdvancedDataGridColumn(i+"");
columnD.width = 25;
columnD.sortable = false;
adcg1.children.push(columnD);
}
ad = new AdvancedDataGrid();
ad.groupedColumns = new Array(column1, column2, adcg1);
return(ad);
}
}
}
|