2013-12-16 22 views
2

我想在页脚中添加一个Total。我知道如何添加一列的总和。但我的问题是如何获得列时包含分钟或小时的总和。这是当我有整数或浮点数:如何使用jqgrid从列中获取总时间?

var workedTotal = jQuery("#list2").jqGrid('getCol', 'worked', false, 'sum'); 

$(this).jqGrid('footerData','set', 
{name:'TOTAL', worked:workedTotal}); 

正如我前面提到的,我想知道如何得到列的总和,当我有日期时间格式? thx

+0

我在列中有这样的格式分钟:“102:32” – Chester

回答

0

getCol只能在列中使用号码。若要使'sum'正确地与"102:32"之类的数据一起正常工作,则应将unformat函数(请参阅here)添加到列'worked'。该unformat功能分钟和小时转换成分钟数和返回结果

unformat: function (cell) { 
    if (typeof cell !== "string") { 
     return 0; 
    } 
    // now we are sure that we work with strings and can use split 
    var arr = cell.split(); 
    if (arr.length === 2) { 
     // standard format of input string like "102:32" 
     var h = parseInt(arr[0], 10), m = parseInt(arr[1], 10); 
     if (!isNaN(h) && !isNaN(m)) { 
      return h * 60 + m; 
     } 
    } 
    return 0; // some exotic input data 
} 

我没有测试上面的代码,但我希望,如果你添加unformat到列'worked'的定义,然后

var workedTotalMin = jQuery("#list2").jqGrid('getCol', 'worked', false, 'sum'); 

会得到你的总分钟数。您可以使用toFixed%在使用footerData之前的几分钟或几小时内将结果转换为字符串。

相关问题