Полагаю, лучший способ объяснить мою проблему - описать ее в терминах примера иерархических XML-данных в Livedocs .
Здесь XML имеет вид
<Region Region="Arizona">
<Territory_Rep Territory_Rep="Barbara Jennings" Actual="38865" Estimate="40000"/>
<Territory_Rep Territory_Rep="Dana Binn" Actual="29885" Estimate="30000"/>
</Region>
Однако данные, которые у меня есть, больше похожи на:
<Region Region="Arizona">
<Territory_Rep Territory_Rep="Barbara Jennings">
<Actual>38865</Actual>
<Estimate>40000</Estimate>
</Territory_Rep>
<Territory_Rep Territory_Rep="Dana Binn">
<Actual>29885</Actual>
<Estimate>30000</Estimate>
</Territory_Rep>
</Region>
И я бы программно создал столбцы так:
var cols:Array = [];
var adgColumn:AdvancedDataGridColumn = new AdvancedDataGridColumn();
adgColumn.headerText = "Rep Name";
adgColumn.dataField = "@Territory_Rep";
cols.push(adgColumn);
adgColumn = new AdvancedDataGridColumn();
adgColumn.headerText = "Actual";
adgColumn.dataField = "Actual";
cols.push(adgColumn);
adgColumn = new AdvancedDataGridColumn();
adgColumn.headerText = "Estimate";
adgColumn.dataField = "Estimate";
cols.push(adgColumn);
grid.columns = cols;
grid.validateNow();
Однако это приведет к тому, что представители будут отображаться как узлы ветвей (то есть папки) с некоторыми пустыми конечными узлами внизу. Это явно не то, что я хочу - мне нужно, чтобы он выглядел так же, как в примере.
Очевидно, что я мог бы решить эту проблему, написав некоторый код - самый простой способ - изменить XML (будь то в исходном коде или с помощью анализатора в моем приложении Flex) или проанализировать его, а затем вместо этого сбросить требуемые данные в ArrayCollection. , но нет ли способа заставить это работать из коробки? Учитывая, что я дал указание AdvancedDataGrid использовать все дочерние элементы в одной строке, почему он не может игнорировать их с точки зрения иерархии?
Поскольку у AdvancedDataGrid, похоже, есть несколько других раздражающих проблем (например, вопрос 3517769 ), лучше ли мне просто создавать собственный класс, который выполняет все, что я хочу? Или есть какие-то достойные обходные пути, о которых я не знаю?
Приветствие.