ホームページ >ウェブフロントエンド >jsチュートリアル >JS コンポーネントのブートストラップ テーブル ページングの実装中に発生した問題を解決する

JS コンポーネントのブートストラップ テーブル ページングの実装中に発生した問題を解決する

高洛峰
高洛峰オリジナル
2017-01-04 11:55:311762ブラウズ

この記事では、参考のためにブートストラップ テーブルのページングの問題を共有します。具体的な内容は次のとおりです。

問題 1: サーバー側でフォームの値を取得できない。クエリ文字列には問題はありませんが、request.form が取得できません。 value

解決策: これは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",

complete

<script type="text/javascript">
 
 
 
 
$(document).ready(function() {
 $(&#39;#tableList&#39;).bootstrapTable({
method: &#39;post&#39;,
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: &#39;CompanyId&#39;,
 
checkbox: true
 
},
{
field: &#39;qq&#39;,
 
title: &#39;qq&#39;,
 
width: 100,
 
align: &#39;center&#39;,
 
valign: &#39;middle&#39;,
 
sortable: false
 
}
,
{
field: &#39;companyName&#39;,
 
title: &#39;姓名&#39;,
 
width: 100,
 
align: &#39;center&#39;,
 
valign: &#39;middle&#39;,
 
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 件のレコードが返され、このとき、5 ページ目になります。マッサージスティックの場合、レコードは 200 件あり、結果は 1 ページ目のレコードであるはずですが、実際には 5 ページ目の結果が表示されます。つまり、再検索してもページ番号は変更されていません。

解決策: オプションをリセットするだけです。

function search(){
 
 $(&#39;#tableList&#39;).bootstrapTable({pageNumber:1,pageSize:10});
 
}

上記はこの記事の全内容です。皆様の学習に役立つことを願っています。

JS コンポーネントのブートストラップ テーブルの実装で発生した問題の解決に関するその他の関連記事については、こちらをご覧ください。ページングの際は、PHP 中国語 Web サイトに注意してください。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。