Замена значения NaN на null в DataGrid во flex

<mx:AdvancedDataGridColumn headerText="{Mlc.curr.get('column 1')}" dataField="datafield1" labelFunction="getTotalQty"/>


private function getTotalQty(inData:Object, inCol:AdvancedDataGridColumn):String
        {
            return (isNaN(inData.qty)?"":inData.qty);
        }

в настоящее время это возвращает пустую ячейку сетки данных для каждой ячейки. независимо от того, является ли ячейка NaN или имеет в ней число.

в сетку данных передается несколько объектов, объект 0 имеет NaN и, таким образом, возвращает нулевое поле, объект 1 имеет значение 70 и по-прежнему возвращает нулевое поле.


person kris    schedule 31.12.2013    source источник


Ответы (1)


inData — универсальный объект; что, вероятно, означает, что qty также не имеет типа; поскольку это не свойство объекта по умолчанию. Вот почему он не проходит тест isNaN. Попробуйте привести inData к вашему пользовательскому объекту или привести inData.qty к числу.

Что-то вроде этого:

private function getTotalQty(inData:Object, inCol:AdvancedDataGridColumn)
{
            var qtyAsNumber : Number = Number(inData.qty);
            return (isNaN(qtyAsNumber)?"":qtyAsNumber.toString());
}
person JeffryHouser    schedule 31.12.2013
comment
У меня был тот же результат при использовании этого метода, я удалил двоеточие из вашего кода, чтобы его скомпилировать, но у меня это не сработало. есть ли что-нибудь еще, что я мог бы попробовать? - person kris; 06.01.2014
comment
Запустите свой код в режиме отладки; и посмотрите, что происходит в методе, посмотрев на переменные. Возможно, inData.qty не является числом? Можете ли вы предоставить полный рабочий образец? - person JeffryHouser; 06.01.2014
comment
большое спасибо, теперь работает для 1 столбца. inData.qty не был числом, и я смог заставить его работать, вызвав inData.ColumnName, однако мне нужно, чтобы этот форматировщик меток работал с несколькими столбцами, которые, очевидно, не будут иметь одинаковое имя. Однако объект inData содержит только все имена столбцов и их значения, поэтому я не вижу способа сделать это без другого средства форматирования для каждого столбца. Есть ли способ избежать этого? - person kris; 06.01.2014
comment
также, если в сетке данных вообще нет сетки данных, столбец, к которому был применен форматировщик меток, будет отображаться с 0 в них? могу ли я изменить это, чтобы ничего не отображать. Спасибо - person kris; 06.01.2014
comment
* нет данных в сетке данных вообще нет данных в сетке данных. извинения - person kris; 06.01.2014