【问题标题】:Datagrid returns a null value, can I replace this?Datagrid 返回一个空值,我可以替换它吗?
【发布时间】:2013-12-09 14:34:56
【问题描述】:

您好,我在 flex 中有一个高级数据网格,有时填充此图表的查询将返回一个空单元格值。发生这种情况时,Datagrid 显示“NaN”。无论如何,如果我的查询没有返回任何内容,Datagrid 单元格就会保持空白。

谢谢 xml: '

                    <mx:AdvancedDataGridColumn headerText="{Mlc.curr.get('address')}" dataField="datafield2" width="{Math.max(180,getStyle('fontSize')))}" />
                    <mx:AdvancedDataGridColumn headerText="{Mlc.curr.get('Name')}" dataField="datafield1" width="{Math.max(180,getStyle('fontSize')))}" />


                </components:columns>
                </components:RowColorDataGrid>

'

作为:

accountViewGridCanv.numRows = 1000;
 dgGridCanv.addParameter(Constants.parameter,""); 
 dgGridCanv.itemID = displayItems.indexOf(dgGrid);

基本上查询运行到电子表格,结果显示在数据网格中,但如果电子表格中的单元格为空,则数据网格显示“NaN”

谢谢 再次

【问题讨论】:

  • 请分享一些代码。听起来您的 DataGrid 的 dataProvider 中有一个项目;但我们需要知道您如何处理来自服务的这些结果并将 dataProvider 设置为确定。
  • 尝试管理列的labelFunction。
  • 谢谢我已经使用代码能够从数据网格中删除 NaN,但它会删除该列中的每一行。例如,第 1 行和第 2 行为空,但第 3 行包含有效数字。在这种情况下,所有 3 行都返回 0。是否可以将此应用于仅具有 NaN 的行

标签: apache-flex datagrid null advanceddatagrid


【解决方案1】:

当 web 服务为 Number 数据类型返回 null 时会发生这种情况。 Flex 将其转换为 NaN(非数字)。使用 labelfunction 检查列中的值是否为 NaN。如果是,则将适当的值返回给 display.eg-

<mx:AdvancedDataGridColumn headerText="Quantity" labelFunction="getTotalQty"/>

现在在 getTotalQty 函数中检查 NaN

private function getTotalQty(inData:Object, inCol:AdvancedDataGridColumn):Number
    {
        return (isNaN(inData.qty)?0:inData.qty);
    }

【讨论】:

  • 如果您仔细查看我的 getTotalQty 函数,如果不是 NaN,它会返回数据的实际值。因此,除非您没有正确实现该功能或该行中的实际数据已经为 0,否则您不应在所有行中都获得 0。
  • 另外,将 inData 参数的数据类型从 Object 替换为 dataprovider 中对象的数据类型。希望这会有所帮助..
  • 嗨,这绝对行不通。我的高级数据网格中的项目作为一个对象,但这对于该列中的所有行都返回 0,而与数据提供程序中返回的内容无关。它已经完全按照这里的方式实现了
猜你喜欢
  • 1970-01-01
  • 2017-05-21
  • 2011-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-23
  • 1970-01-01
  • 2011-08-16
相关资源
最近更新 更多