Bootstrap Table 分页常见报错与解决方案

作者:键盘侠时间:2026-10-30 05:37:19浏览:96

本文整理了Bootstrap Table在使用分页功能时遇到的四个典型问题。包括服务器端无法通过request.form获取Form值、如何正确配置queryParams传递分页参数、后台无法获取pageSize信息的源码修改方法,以及分页后重新搜索导致数据异常的处理策略。通过调整contentType、修改源码或重置Option,可有效解决这些开发中的常见障碍。

Bootstrap Table 分页问题概述

本文分享了在使用 Bootstrap Table 进行分页开发时可能遇到的具体问题及解决方法,供开发者参考。

服务器端获取Form值失败

问题一:服务器端无法通过 request.form 获取 Form 数据,尽管 QueryString 参数正常。

解决:这是ajax的问题,原代码使用原生的ajax。 1可以用读流文件解决。2 如果想用request.form 方式,设置 contentType: "application/x-www-form-urlencoded",

具体配置示例如下:

 $('#tableList').bootstrapTable({
method: 'post',
url: "",
height: $(window).height() - 200,
striped: true,
dataType: "json",
pagination: true,
"queryParamsType": "limit",
singleSelect: false,
contentType: "application/x-www-form-urlencoded",

传递分页参数的配置方法

问题二:如何正确设置传递给服务器的分页参数。

实现方法如下:


function queryParams(params) {

return {
pageSize: params.limit,

pageNumber: params.pageNumber,

UserName: 4

};

}

 $('#tableList').bootstrapTable({
method: 'post',
url: "",
height: $(window).height() - 200,
striped: true,
dataType: "json",
pagination: true, 

queryParams: queryParams,

后端无法获取pageSize的解决

问题三:后端无法获取 pageSize 参数信息。

解决方法:

1. 在 queryParams 配置项中进行设置。

2. 修改 bootstrap-table.min.js 源文件,将相关逻辑调整为:

"limit"===this.options.queryParamsType&&(e={limit:e.pageSize,pageNumber:e.pageNumber,

或者直接修改 bootstrap-table.js 文件亦可。


if (this.options.queryParamsType === 'limit') {
params = {
search: params.searchText,
sort: params.sortName,
order: params.sortOrder
};
if (this.options.pagination) {
params.limit = this.options.pageSize;

params.pageNumber=this.options.pageNumber,
params.offset = this.options.pageSize * (this.options.pageNumber - 1);
}
}

在配置中加入 "queryParamsType": "limit" 即可。

完整的配置示例如下:


<script type="text/javascript">




$(document).ready(function() {
 $('#tableList').bootstrapTable({
method: 'post',
url: "getcompapylist",
height: $(window).height() - 200,
striped: true,
dataType: "json",
pagination: true,
"queryParamsType": "limit",
singleSelect: false,
contentType: "application/x-www-form-urlencoded",
pageSize: 10,
pageNumber:1,
search: false, //不显示 搜索框
showColumns: false, //不显示下拉框(选择显示的列)
sidePagination: "server", //服务端请求
queryParams: queryParams,
//minimunCountColumns: 2,
responseHandler: responseHandler,
columns: [
{
field: 'CompanyId',

checkbox: true

},
{
field: 'qq',

title: 'qq',

width: 100,

align: 'center',

valign: 'middle',

sortable: false

}
,
{
field: 'companyName',

title: '姓名',

width: 100,

align: 'center',

valign: 'middle',

sortable: false

}
]
});

});
function responseHandler(res) {


if (res.IsOk) {
var result = b64.decode(res.ResultValue);

var resultStr = $.parseJSON(result);
return {
"rows": resultStr.Items,
"total": resultStr.TotalItems
};

} else {
return {
"rows": [],
"total": 0
};
}

}

//传递的参数

function queryParams(params) {

return {
pageSize: params.limit,

pageNumber: params.pageNumber,

UserName: 4

};

}
</script>

分页后重新搜索的处理

问题四:分页后执行重新搜索功能时的处理。

前提条件:系统包含自定义搜索功能且启用了分页,例如根据产品名进行搜索。

解决方法:只需重新设置 Table 的 Option 参数即可。


 function search(){

 $('#tableList').bootstrapTable({pageNumber:1,pageSize:10});

}

若需深入学习,可参考相关学习教程及专题内容。

以上为 Bootstrap Table 分页相关问题的完整解决方案,希望对开发者有所帮助。

作者最新文章