在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
没有。
答案 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。
所以人们可以得到一个想法,但我同意你的意见,我们应该清楚地提到返回类型应该是一个数字。
我们将其保留为对象,以便将来添加更多内容变得容易。