![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 13
|
Нужно что бы в столбце Task и Worker были данные из SimpleFlatData.as, а к adcg1:AdvancedDataGridColumnGroup применить itemRenderer который зарисовывать к-во ячеек данной группы, беря значение к-ва (Duration) в SimpleFlatData.as
Подскажите как это можно реализовать? trainingProject.mxml : ?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> [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} ]); 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); } } } |
|
|||||
|
Не понятно что вы хотите получить.
__________________
2+2=5 |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 13
|
Не занаю как в данном случае применить dataProvider что бы в ячеках отображалось содержимое. И каким образом привязять itemRenderer к группе столбцов adcg1.
|
|
|||||
|
То что вы не знаете как сделать я понял. А что вы хотите чтобы отображалось в массе этих столбцов? Данных для них всего одно как я понял(это Du
__________________
2+2=5 |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 13
|
Цитата:
Вопрос может и глупый, но я только изучаю flex. Есть свойства dataProvider и itemRenderer, но как правильно сделать что бы это все работало, так как пытался ничего не работало =( |
|
|||||
|
Вот так:
MyGrpdDG.as : package { import mx.collections.*; import mx.controls.*; import mx.controls.advancedDataGridClasses.*; import mx.core.ClassFactory; import mx.core.UIComponent; 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 = "Duaration"; var i:int; var columnD:AdvancedDataGridColumn = new AdvancedDataGridColumn(""); for ( i = 0; i < 23; i++) { columnD = new AdvancedDataGridColumn(i+""); columnD.itemRenderer = new ClassFactory(DurationItemRenderer); columnD.width = 25; columnD.sortable = false; adcg1.children.push(columnD); } ad = new AdvancedDataGrid(); ad.groupedColumns = new Array(column1, column2, adcg1); return(ad); } } } package { import mx.controls.Label; import mx.controls.dataGridClasses.*; import mx.controls.listClasses.IListItemRenderer; import mx.core.IFactory; public class DurationItemRenderer extends Label implements IFactory, IListItemRenderer { public function DurationItemRenderer(){ super(); } public function newInstance():*{ return new DurationItemRenderer(); } override public function set data(value:Object):void { if(value != null) { //super.data = value; if(DataGridListData(listData).dataField < value.Duaration) this.opaqueBackground = 0xFF0000; else this.opaqueBackground = 0x000000; } } } }
__________________
2+2=5 |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 13
|
Огромнейшее спасибо!! =)
|
![]() |
![]() |
Часовой пояс GMT +4, время: 15:41. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| advanceddatagrid , dataProvider , itemrenderer |
|
|