代码之家  ›  专栏  ›  技术社区  ›  luca

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

  •  1
  • luca  · 技术社区  · 15 年前

    我有一个数据网格。如果列值为“0”,如何隐藏该列的值?我必须使用项目呈现器吗?怎样?有更简单的方法吗?

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

    谢谢

    2 回复  |  直到 13 年前
        1
  •  3
  •   Amarghosh    15 年前

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

        2
  •  1
  •   SiriusDev    13 年前

    这是一个改进的版本,它在不显式命名您正在处理的字段的情况下工作。

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