flex 3 数据网格:如果 == 0 则隐藏值并在布尔值上显示复选框

Posted

技术标签:

【中文标题】flex 3 数据网格:如果 == 0 则隐藏值并在布尔值上显示复选框【英文标题】:flex 3 data grid: hide value if == 0 and show checkbox on Booleans 【发布时间】:2010-12-05 18:01:30 【问题描述】:

我有一个数据网格。如果它是“0”,我如何隐藏列的值?我必须使用项目渲染器吗?如何?有没有更简单的方法?

第二件事,如果我有一个布尔列,其值实际上是字符串“true”和“false”,如何将其呈现为不可编辑的复选框?

谢谢

【问题讨论】:

【参考方案1】:

第一个问题:你可以用datagridcolumn的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。

【讨论】:

【参考方案2】:

这是一个改进的版本,无需明确命名您正在处理的领域。

private function hideZero(item:Object, column:DataGridColumn):String

  if(item[column.dataField] == 0)
    return '';
  return item[column.dataField];

【讨论】:

以上是关于flex 3 数据网格:如果 == 0 则隐藏值并在布尔值上显示复选框的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flex 3 中增加水平网格线的粗细

如何根据多列对 flex 数据网格进行排序?

使用 ctrl+鼠标滚轮 flex3 在高级数据网格中放大/缩小

如何关闭隐藏的 Angular Material 类的 flex 布局

数据网格 Flex 中的 Flex 对齐复选框

如何在 extjs 3 网格面板中显示/隐藏列