Apache flex 在Flex中,AdvancedDataGridColumn.itemToLabel()在项为布尔值时不返回任何内容?

Apache flex 在Flex中,AdvancedDataGridColumn.itemToLabel()在项为布尔值时不返回任何内容?,apache-flex,Apache Flex,我正在分析AdvancedDataGrid,其中一列的数据字段是布尔值。该列还有一个itemRenderer(我无法更改或修改)。itemToLabel似乎可以处理除所讨论的列(布尔值)之外的所有其他列。理想情况下,我会返回一个“0”或“1”或“true”或“false”字符串。这可能吗?也许您可以为DataGridColumn设置labelFunction function booleanLabelFunction(item:Object, column:DataGridColumn):Str

我正在分析AdvancedDataGrid,其中一列的数据字段是布尔值。该列还有一个itemRenderer(我无法更改或修改)。itemToLabel似乎可以处理除所讨论的列(布尔值)之外的所有其他列。理想情况下,我会返回一个“0”或“1”或“true”或“false”字符串。这可能吗?

也许您可以为DataGridColumn设置labelFunction

function booleanLabelFunction(item:Object, column:DataGridColumn):String
{
  return item ? "True" : "False";
}

所有项目都可见吗?如果是这样,我想知道您是否可以使用itemRenderer访问特定行的数据,从而访问您关心的字段。也许是这样的

private function getBooleanValueForItem(item:Object):Boolean
{
     var ir:IListItemRenderer = myGrid.itemToItemRenderer(item) as IListItemRenderer;
     return ir.data.dataField;
}

其中dataField是布尔列的数据字段?您只能获取可见行的itemRenderer,这就是我最初的问题。

谢谢,但我无法控制advanceddatagrid。我的解析方法使用advanceddatagrid作为参数,我不能保证会应用labelfunction。您能检查数据是否为布尔值,然后特地处理吗?您知道我如何检查给定AdvancedDataGridColumn的数据是否为布尔值吗?因为您使用的是itemToLabel函数,我假设您是数据的引用。您可以使用AdvancedDataGridColumn的dataField属性,然后执行类型检查。类似于
if(data[dataGridColumn.dataField]是布尔值)
。这最终将我引向了正确的方向。讨论中的字段有一个自定义项呈现器,该呈现器正在处理真实数据(在数据字段中),并使用布尔值在datagrid中显示(或不显示)图标。我创建了一个toString方法来吐出“True”或“False”作为开/关图标的替代。