问题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: 设置传递到服务器的参数
方法:
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,
问题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",
完整:
<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>
问题4:分页后,重新搜索的问题
前提:自定义搜索且有分页功能,比如搜索产品名的功能.
现象:当搜索充气娃娃的时候返回100条记录,翻到第五页. 这时候搜索按摩棒,数据有200条,结果应该是第一页的记录,但是实际显示的还是第五页的结果. 也就是重新搜索后,pagenumber没有变.
解决:重新设置option就行了.
function search(){ $('#tablelist').bootstraptable({pagenumber:1,pagesize:10}); }
以上就是本文的全部内容,希望对大家的学习有所帮助。
更多bootstrap table分页问题汇总。