Сетка данных Flex 3: скрыть значение, если == 0 и показать флажок в логических значениях - PullRequest
1 голос
/ 11 октября 2009

У меня есть сетка данных. Как я могу скрыть значение столбца, если оно равно «0»? Нужно ли использовать средства визуализации предметов? Как? Есть ли более простой способ?

Во-вторых, если у меня есть логический столбец, значения которого на самом деле являются строками "true" и "false", как я могу отобразить его как неизменяемый флажок?

спасибо

Ответы [ 2 ]

3 голосов
/ 11 октября 2009

Первый вопрос: вы можете сделать это с помощью свойства labelFunction столбца данных.

<mx:DataGridColumn dataField="fieldValue" editable="false"
  labelFunction="hideZero">
private function hideZero(item:Object, column:DataGridColumn):String
{
  if(item.fieldValue == 0)
    return "";
  return item.fieldValue;
}

второй вопрос: используйте рендерер с добавлением предметов.

<mx:DataGridColumn dataField="dValue" editable="false">
  <mx:itemRenderer>
    <mx:Component>
      <mx:CheckBox selected="{data.dValue == 'true'}"/>
    </mx:Component>
  </mx:itemRenderer>
</mx:DataGridColumn>

заменить dValue на соответствующее поле данных.

1 голос
/ 15 сентября 2011

Это улучшенная версия, которая работает без явного присвоения имени полю, над которым вы работаете.

private function hideZero(item:Object, column:DataGridColumn):String
{
  if(item[column.dataField] == 0)
    return '';
  return item[column.dataField];
}
...