Próbuję dowiedzieć się, jak zarządzać DataGrid na podstawie obiektu XML, jak to:
<matrix rows="5" columns="5">
<column>
<row>0.5</row>
<row>0.21</row>
</column>
<column>
<row>0.6</row>
<row>0.9</row>
</column>
<column>
<row>0.5</row>
<row>0.5</row>
</column>
<column>
<row>0.8</row>
<row>0.4</row>
</column>
</matrix>
Będę musiał wypełnić nazwy kolumn w Datagridna podstawie innego obiektu XML i użyj powyższego XML do wypełnienia każdego z wierszy kolumny.Jestem obecnie w stanie utworzyć Datagrid i zapełnić jego nagłówki kolumn, ale nie jestem pewien, w jaki sposób dodawać wiersze dla każdej kolumny Powyższy kod XML zostanie zaktualizowany z dodanymi i usuniętymi nowymi elementami wiersza i kolumny, co oczywiście będzie wiązało się z datagridem w celu pokazania aktualizacji.
Odpowiedzi:
1 dla odpowiedzi № 1Czy to prawda, że dane wiersza są potomnekolumny? Jeśli tak jest, musisz najpierw przekształcić dane. DataGrid w Flex i Table w HTML są oparte na konwencji baz danych zawierających wiersze jako pojedyncze rekordy, a nie kolumny.
Jeśli kogo / cokolwiek dostarcza dane odmawia zastosowania się do tego, lepiej będzie manipulować danymi, aby dopasować je do kontroli widoku, a nie odwrotnie, co wydaje się robić teraz.
1 dla odpowiedzi nr 2
Wiersze datagridu będą dynamiczne. Zostanie wypełniona na podstawie liczby elementów w dostawcy danych. Aby jednak kolumny były dynamiczne, musisz zrobić to za pomocą AS.
Datagrid ma właściwość o nazwie "kolumny". zawiera obiekty DataGridColumn dla tego datagridu. Możesz sprawdzić dostawcę danych i dodać lub usunąć DatagridColumns do tablicy "columns".
var cols:Array = [];
for(var i:int = 0;i<dataProvider.length;i++)
{
var DGCol:DataGridColumn = new DataGridColumn();
DGCol.dataField = "data1";
cols.push(DGCol);
}
myDg.columns = cols;