Заполнение таблицы данных с переменным количеством столбцов и строк в Flex - PullRequest
0 голосов
/ 18 мая 2010

Я пытаюсь выяснить, как управлять сетью данных на основе объекта XML, например:

<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>

Мне нужно будет заполнить имена столбцов Datagrid на основе другого объекта XML и использовать вышеуказанный XML для заполнения каждой строки столбца. В настоящее время я могу создать Datagrid и заполнить его заголовки столбцов, но я не уверен, как добавить строки для каждого столбца. Приведенный выше XML будет обновлен с добавлением и удалением новых элементов строки и столбца. Это, конечно, будет связано с датагридом для показа обновлений.

Ответы [ 2 ]

1 голос
/ 18 мая 2010

Обязательно ли, чтобы данные строки были дочерними по отношению к столбцу? Вам нужно будет сначала преобразовать данные, если это так. DataGrid во Flex и Table в HTML основаны на соглашении о базах данных со строками в виде отдельных записей, а не столбцов.

Если кто / что предоставляет данные, отказывается соблюдать это, вам лучше будет манипулировать данными, чтобы они соответствовали элементу управления представлением, а не наоборот, что вы, похоже, делаете сейчас.

1 голос
/ 18 мая 2010

Строки сетки данных будут динамическими. Он будет заполнен на основе количества элементов в поставщике данных. Но чтобы сделать колонки динамическими, вы должны сделать это с помощью AS.

У Datagrid есть свойство, называемое «столбцы». он содержит объекты DataGridColumn для этой сетки данных. Вы можете проверить поставщик данных и добавить или удалить DatagridColumns в массиве "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;
...