Сетка данных flex 3: скрыть значение, если == 0, и показать флажок для логических значений

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

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

Спасибо


person luca    schedule 11.10.2009    source источник


Ответы (2)


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

<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 соответствующим dataField.

person Amarghosh    schedule 11.10.2009

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

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