【发布时间】:2012-10-01 07:50:07
【问题描述】:
我正在构建一个带有启用 DataTable 的表的简单页面。
来自我服务器的数据如下所示:
[{"name": "John","salary": 2000,"bonus1": 100,"bonus2": 100},
{"name": "Jack","salary": 2500,"bonus1": 0,"bonus2": 200},
{"name": "Bill","salary": 2000,"bonus1": 300,"bonus2": 300}
]
我需要添加并计算第五列,它代表员工工资的百分比值(工资/所有工资的总和)
在fnPreDrawCallback 中,我可以修改oSettings.aoData,所以当我修改console.log(oSettings.aoData) 时,我得到了正确的值,但表中的该列为空。
我的fnPreDrawCallback 函数如下所示:
"fnPreDrawCallback": function (oSettings) {
iTotal = [0, 0, 0]; //declared in $(document).ready
var dataLength=oSettings.aoData.length;
for (var i = 0; i < dataLength; i++) {
iTotal[0] += oSettings.aoData[i]._aData.salary;
iTotal[1] += oSettings.aoData[i]._aData.bonus1;
iTotal[2] += oSettings.aoData[i]._aData.bonus2;
}
for (i = 0; i < dataLength; i++) {
oSettings.aoData[i]._aData.percent=(oSettings.aoData[i]._aData.salary / iTotal[0] * 100).toFixed(2)+'%';
}
console.log(oSettings.aoData);
},
这是我的代码:http://live.datatables.net/umezez/13/edit
我的问题:我应该在哪里更新我的数据,以便更新在表格中可见?
我希望避免使用选择器和更新 DOM 的内容,因为我希望能够使用 TableTools 或服务器端处理导出我的表格。
【问题讨论】:
标签: javascript datatables