解决JS组件bootstrap table分页实现过程中遇到的问题
本文为大家分享了bootstrap-table分页的问题,供大家参考,具体内容如下
问题1:服务器端取不到form值,querystring没有问题,但是request.form取不到值
解决:这是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",
问题2、设置传递到服务器的参数
方法:
functionqueryParams(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,
问题3、后台取不到pageSize信息
解决:
1在queryParams中设置
2在bootstrap-table.minjs文件修改源文件为
"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",
完整
<scripttype="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 } ] }); }); functionresponseHandler(res){ if(res.IsOk){ varresult=b64.decode(res.ResultValue); varresultStr=$.parseJSON(result); return{ "rows":resultStr.Items, "total":resultStr.TotalItems }; }else{ return{ "rows":[], "total":0 }; } } //传递的参数 functionqueryParams(params){ return{ pageSize:params.limit, pageNumber:params.pageNumber, UserName:4 }; } </script>
问题4、分页后,重新搜索的问题
前提:自定义搜索且有分页功能,比如搜索产品名的功能.
现象:当搜索充气娃娃的时候返回100条记录,翻到第五页. 这时候搜索按摩棒,数据有200条,结果应该是第一页的记录,但是实际显示的还是第五页的结果. 也就是重新搜索后,pagenumber没有变.
解决:重新设置option就行了.
functionsearch(){ $('#tableList').bootstrapTable({pageNumber:1,pageSize:10}); }
如果大家还想深入学习,可以点击这里进行学习,再为大家附两个精彩的专题:Bootstrap学习教程Bootstrap实战教程
以上就是本文的全部内容,希望对大家的学习有所帮助。