你能从summaryObjectFunction返回一个String吗?

时间:2008-09-15 18:50:07

标签: flex advanceddatagrid

在Flex AdvancedDatGrid中,我们正在进行大量分组。对于父母和孩子来说,大多数列是相同的,所以我想将组的第一个值显示为摘要而不是MAX,MIN或AVG

此代码适用于数字值,但不适用于文本值(没有使用NaN的注释行):

private function firstValue(itr:IViewCursor,field:String, str:String=null):Object 
{
  //if(isNaN(itr.current[field])) return 0  //Theory: Only works on Numeric Values?
  return itr.current[field]
}      

XML:

(mx:GroupingField name="Offer")
  (mx:summaries)
    (mx:SummaryRow summaryPlacement="group")
      (mx:fields)
        (mx:SummaryField dataField="OfferDescription"   label="OfferDescription" summaryFunction="firstValue"/)
        (mx:SummaryField dataField="OfferID"   label="OfferID" summaryFunction="firstValue"/)
        (/mx:fields)
    (/mx:SummaryRow)
  (/mx:summaries)
(/mx:GroupingField)

OfferID的工作正确,OfferDescription没有。

2 个答案:

答案 0 :(得分:3)

如果需要显示一个字符串,请使用advancedDataGridColumn上的labelfunction。这将呈现摘要行。

(mx:AdvancedDataGridColumn headerText =“Comment”width =“140”dataField =“comment”labelFunction =“formatColumn”/)

            private function getNestedItem(item:Object):Object {

                try {
                    if (item.undefined[0]) {
                        item = getNestedItem(item.undefined[0]);
                    }
                } catch (e:Error) {
                    // leave item alone
                }
                return item;
            }           
            private function formatColumn(item:Object, column:AdvancedDataGridColumn):String {

                var output:String;
                // If this is a summary row
                if (item.GroupLabel) {

                    item = getNestedItem(item);
                } 

                switch (column.dataField) {

                    case 'comment':

                        return item.comment;


                }

            }

答案 1 :(得分:1)

看起来summaryFunction必须返回一个数字。根据{{​​3}},这是文档中的错误:

  

Sameer Bhatt的评论:

     

在文件中提到 -   SUM,MIN,MAX,AVG和COUNT的内置汇总函数都返回包含汇总数据的Number。

     

所以人们可以得到一个想法,但我同意你的意见,我们应该清楚地提到返回类型应该是一个数字。

     

我们将其保留为对象,以便将来添加更多内容变得容易。