AdvancedDataGrid Flex - строка не добавляется в правильный столбец - PullRequest
0 голосов
/ 27 июня 2011

Я динамически добавляю строки, и они, похоже, не попадают в соответствующий столбец. У меня есть все мои заголовки в 'headerArray', и данные, которые мне нужно добавить, находятся в строке 'item'.

//create an item to work with
var chartItem:Object = new Object();
for( var j:int = 0; j < columnResult.length ; j++ ) 
{

    var item:String = removeformat(removetd(columnResult[j]));
    //grab the header (this is which column the value will be added
    var head:String = headerArray[j];
    //set the value to header (pair)
    chartItem[head] = item;
}
//add the chartItem (row) to the main collection
arr.addItem(chartItem);
tableCollection = arr;

Он правильно получает все заголовки и устанавливает chartItem (из проверки с помощью отладчика). Когда он попадает в строку (построение из html), где есть элемент, который имеет значения только для некоторых столбцов, он не добавляет информацию в правый столбец, он просто идет слева направо и добавляет его в следующий.

Поведение немного странное, потому что у chartItem явно есть правильное значение заголовка и соответствующее значение элемента, но, как я сказал, они не попадают в правый столбец.

tableCollection устанавливается позже как поставщик данных для сетки (не изменялся с тех пор)

1 Ответ

1 голос
/ 28 июня 2011
var chartItem:Object = new Object();
var span:int = 0;
for( var j:int = 0; j < columnResult.length ; j++ ) 
{
    var colSpan:int = this.getColSpan(columnResult[j]);         
    var item:String = removeformat(removetd(columnResult[j]));
    //grab the header (this is which column the value will be added
    var head:String;
    if (colSpan >1){
        head = headerArray[j];
        span = colSpan;
    } else {
        if (span == 0){
            head = headerArray[j];
        } else {
            head = headerArray[j+span-1]
        }
    }
    //set the value to header (pair)
    chartItem[head] = item;
}
//add the chartItem (row) to the main collection
arr.addItem(chartItem);

Если я читаю атрибут span для строки, я устанавливаю СЛЕДУЮЩУЮ строку в столбце + предыдущий colspan. тогда все ряды выстроятся правильно.

...