如图,当选择查询ALL全部数据时,页面出现NAN,查询也报错了
bootstrapTable属性设置:
sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
pageSize: 15, //每页的记录行数(*)
pageList: [15, 25, 50, 100,'ALL'], //可供选择的每页的行数(*)
解决方法:
几经查找,在大佬们那里找到解决方法,在所引用的bootstrapTable插件里的bootstrap-table-zh-CN.js(或bootstrap-table-zh-CN.min.js)文件中,添加以下代码:
formatAllRows: function () {
return 'ALL'; // or return your translated word "全部"
}
如下:
(function ($) {
'use strict';
$.fn.bootstrapTable.locales['zh-CN'] = {
formatLoadingMessage: function () {
return '正在努力地加载数据中,请稍候……';
},
formatRecordsPerPage: function (pageNumber) {
return '每页显示 ' + pageNumber + ' 条记录';
},
formatShowingRows: function (pageFrom, pageTo, totalRows) {
return '显示第 ' + pageFrom + ' 到第 ' + pageTo + ' 条记录,总共 ' + totalRows + ' 条记录';
},
formatSearch: function () {
return '搜索';
},
formatNoMatches: function () {
return '没有找到匹配的记录';
},
formatPaginationSwitch: function () {
return '隐藏/显示分页';
},
formatRefresh: function () {
return '刷新';
},
formatToggle: function () {
return '切换';
},
formatColumns: function () {
return '列';
},
formatExport: function () {
return '导出数据';
},
formatClearFilters: function () {
return '清空过滤';
},
formatAllRows: function () {
return 'ALL'; // or return your translated word "全部"
}
};
$.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['zh-CN']);
})(jQuery);
- 对于序号显示NAN,可以获取页面对象中数据总数,在columns属性中修改序号显示
columns: [{
checkbox: true,
visible: true //是否显示复选框
},
{
field: 'no',
title: '序号',
// sortable: true,
align: "center",
width: 40,
formatter: function (value, row, index) {
//获取每页显示的数量
var pageSize = $('#table').bootstrapTable('getOptions').pageSize;
//查询全部时,每页数量=总条数
if (pageSize == "ALL") {
var totalRows = $('#table').bootstrapTable('getOptions').totalRows;
pageSize = totalRows;
}
//获取当前是第几页
var pageNumber = $('#table').bootstrapTable('getOptions').pageNumber;
// console.log(pageSize * (pageNumber - 1) + index + 1)
//返回序号,注意index是从0开始的,所以要加上1
return pageSize * (pageNumber - 1) + index + 1;
}
},
]
- 也可以把pageList中的"ALL"换成"全部",只要把bootstrap-table-zh-CN.js中也替换为"全部"
- 有时,页面上的每页数量只显示一两个,如果页面没有报错,一般是因为数据量不够,数据多了就会显示