附件是flex3 datagrid列求和的例子子,需要注意的是在FooterDataGrid中不能添加itemRenderer属性,并且labelFunction方法的参数是DataGridColumn,而不是之前Object和DataGridColumn。
下面的方法是末行的labelFunction对应的函数,参数只有一个,目的是求变更时间大于截止时间的总天数。
private function overTotalDays(column:DataGridColumn):String
{
var overTotalNum:Number = 0;
for(var i:int = 0; i < control.ctlChangeInfos.length; i++)
{
var date01:Date = control.ctlChangeInfos[i].changeDate as Date;
var date02:Date = control.ctlChangeInfos[i].lastDate as Date;
//如果变更时间大于截止时间,则变更超期
if(date01 > date02)
{
overTotalNum += (date01.valueOf() - date02.valueOf())/24/60/60/1000;
}
}
return overTotalNum.toString();
}
需要特别注意的是,在最末的合计行,显示的时候往往会出现意外覆盖或显示不全的问题,经过多次测试和修改发现,原来是datagrid的height问题所引起,需要保证height刚好能够容纳若干行的数据,或稍微多一点,如果height刚好显示20.5行数据,那么就会有半行数据重叠。在此基础上再将paddingTop和paddingBottom边框设为0就更好了。
如果需要通过点击按钮触发事件的话,需要用datagridcolumn的id.labelFunction=myFunction来触发labelFunction事件
Flex DataGrid列求和
猜你喜欢
转载自liugang-ok.iteye.com/blog/1134138
今日推荐
周排行