bootstrap页脚的footerFormatter中无值

stevenjin 2018-12-08 08:13:51
对表格做汇总,表格能显示数据,但页脚数据没有出现。
调试发现footerFormatter的rows始终为空值。

但formatter中都能log值。

调了很久也没出现,麻烦大师来看一下!
1.前台代码
<body>

<div style="">
<table id="table_showMembers"></table>
</div>
</body>

<script type="text/javascript" src="js/jquery-3.3.1.js" ></script>
<script type="text/javascript" src="js/bootstrap.js"></script>
<script type="text/javascript" src="js/bootstrap-table.js" ></script>
<script type="text/javascript" src="js/bootstrap-table-zh-CN.js" ></script>

<script type="text/javascript">
$(function () {
initData();
});

function initData() {

$(function () {
var table_showMembers = $('#table_showMembers').bootstrapTable({
url: 'data.ashx',//后台调用时,不行
//data: data.rows, //测试时,在这里写死数据可以
method: 'get',
toolbar: '#toolbar',
striped: true,
cache: false,
pagination: true,
sortable: false,
sortOrder: "asc",
queryParams: function (params) {
return {
startIndex: params.offset,
pageSize: params.limit
};
},
sidePagination: "server",
pageNumber: 1,
pageSize: 10,
pageList: [2, 4, 6, 8],
// search: true,
contentType: "application/x-www-form-urlencoded",
strictSearch: true,
//showColumns: true,
//showRefresh: true,
minimumCountColumns: 2,
clickToSelect: true,
//height: 700,
width: '50%',
uniqueId: "id",
//showToggle: true,
cardView: false,
detailView: false,
checkboxHeader: true,
singleSelect: false,
showFooter: true,
columns: [
{
field: 'openDate',
title: 'openDate',
valign: 'middle',
align: 'center',
visible: true,
width: '100px'
},
{
field: 'balance',
title: 'balance',
align: 'center',
width: '150px',
formatter: function (value, row, index) {
//有值
},
footerFormatter: function (rows) {//是空的
var sum = 0;
for (var i = 0; i < rows.length; i++) {
sum += rows[i].hasWorkedHours
}
return sum + "H";
}
}
]
});
});
}
</script>

2.从后台返回的数据,我已经确认格式是正确的。因为如果写死在前台可以。
{
"total": 2,
"rows": [
{
"ROWNUM": "1",
"cardID": "1010 3576 1212 1134",
"openDate": "2018/10/13 23:17:00",
"balance": "5704.0000"
},
{
"ROWNUM": "2",
"cardID": "1010 3576 1212 8135",
"openDate": "2018/10/13 23:17:00",
"balance": "3633.0000"
}
]
}

...全文
516 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaizj2013 2018-12-10
  • 打赏
  • 举报
回复
钉钉牛逼牛逼
stevenjin 2018-12-09
  • 打赏
  • 举报
回复
原因总结:
1.字段写错:
sum += rows[i].hasWorkedHours //应为balance
2.初次加载时rows为空,而debugger的位置是这样打,误认为没有取到数据:function (rows) {debugger}
实际上要等表格完成后,在取值时打才对:
footerFormatter: function (rows) {
//alert(rows.length);
if (rows.length > 0) {
debugger
alert(rows[1].balance)
; }
var sum = 0;
for (var i = 0; i < rows.length; i++) {

sum += rows[i].balance
}
return sum + "H";
//return rows.length;
}

3.最好用console.log()这种方式,如这次就能避免我出现的问题
stevenjin 2018-12-08
  • 打赏
  • 举报
回复
散分啦!!!
找到原因了,是这里写错:
sum += rows[i].hasWorkedHours

62,067

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧