中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Node.js中Bootstrap-table如何實現分頁

發布時間:2021-07-08 14:48:37 來源:億速云 閱讀:187 作者:小新 欄目:web開發

這篇文章給大家分享的是有關Node.js中Bootstrap-table如何實現分頁的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

1、Bootstrap-table使用

官方文檔:http://bootstrap-table.wenzhixin.net.cn/zh-cn/documentation/
bootstrap-table是一個基于bootstrap的表格插件,在使用上有點類似于easyui中的datagrid,但是樣式上要比easyui美觀一些,而且更加符合現代網站或者系統的前端要求。

不僅如此,bootstrap-table在使用中還有諸多獨特之處:

自帶前端搜索功能,還能定制搜索
前端列表詳情展示,不僅僅是表格的形式
分頁更加自由、更加多樣化。可以根據不同的需求選擇不同的分頁方式。
bootstrap-table的使用通過查看官方文檔就可掌握,現在主要記錄bootstrap-table中獨特的、強大的分頁功能。

注意: 文中后臺邏輯使用Node.js實現,數據庫為mongodb

2、bootstrap-table中兩種分頁

bootstrap-table的分頁方式是有bootstrap-table中sidePagination屬性決定,此屬性有兩個值,client,server,分別代表前端分頁和服務器后端分頁。默認值為client 前端分頁。

首先在頁面中引入必須的插件包,如下:

<link rel="stylesheet" href="bootstrap.min.css" rel="external nofollow" >
<link rel="stylesheet" href="bootstrap-table.css" rel="external nofollow" >

<script src="jquery.min.js"></script>
<script src="bootstrap.min.js"></script>
<script src="bootstrap-table.js"></script>
<-- 本地化js -->
<script src="bootstrap-table-zh-CN.js"></script>

2.1 前端分頁

前端頁面代碼如下:

$("#gridList").bootstrapTable({ 
      url:'/user/getUserList',//url獲取數據 
      method:'get',//方法 
      cache:false,//緩存 
      pagination:true,//分頁 
      sidePagination:'client',//指定在前端客戶端分頁 
      pageNumber:1,//頁號 
      pageSize:10,//頁面數據條數 
      pageList:[10,20,30,40,50],//分頁列表 
      uniqueId:'_id',//唯一id 
      toolbar:'#toolbar',//工具欄 
      showColumns:true,//顯示選擇列 
      showRefresh:true,//顯示刷新按鈕 
      showToggle:true,//顯示切換視圖:列表和詳情視圖切換 
      search:true,//顯示搜索框 
      columns:[ 
        {checkbox:true}, 
        {field:'user_no',title:'用戶編碼',width:'10%'}, 
        {field:'user_name',title:'用戶姓名',width:'20%' 
        }, 
        {field:'user_sex',title:'用戶性別',width:'8%',align:'center', 
          formatter:function(value,row,index){ 
            if(value == '1'){ 
              return '男'; 
            }else{ 
              return '女'; 
            } 
          }}, 
        {field:'user_account',title:'登錄賬號',width:'10%'}, 
        {field:'user_role',title:'所屬角色',width:'10%'}, 
        {field:'user_sys',title:'所屬系統',width:'10%'}, 
        {field:'create_time',title:'創建時間',width:'20%', 
          formatter:function(value,row,index){ 
            return dateTimeFormatter(value,'yyyy-MM-dd hh:mm:ss'); 
          } 
        } 
      ] 
    });

注意: 在前端頁面分頁中,sidePagination 必須設置為client

部分后臺邏輯代碼如下:

/******user_route.js*********/
/**
 * 獲取用戶列表
 */
router.get('/getUserList',function(req,res){
  userServices.getUserList(req,res,function(err,users){
    if(err){
      res.send({success:false,msg:err,data:null});
    }else{
      res.send({'success':true,'msg':"獲取用戶列表成功",'total':users.length,'data':users});
    }
  });
});

/*******user_services.js********/
/**
 * 獲取用戶列表
 * @param req
 * @param res
 * @param callback
 */
exports.getUserList = function(req,res,callback){
  userModel.$user.find(function(err,users){
    if(err){
      callback('獲取用戶列表失敗!',null);
    }else{
      callback(null,users);
    }
  })
}

注意: 返回到前端的數據中,必須有 data 參數,bootstrap-table會根據返回的data參數,設置前端分頁。data參數值須為一個數組,數組中包含返回的數據。

前端分頁在數據較少的時候非常適用,可以減少瀏覽器請求數,數據庫訪問此數,從而提高系統性能。但是不適合非常龐大的萬級數據量,返回的數據會放在內存中保存,龐大的數據量會消耗不少內存。

2.2 后端分頁

前端頁面js:

$("#gridList").bootstrapTable({
      url:'/user/getUserListPagination',//設置后臺分頁,必須設置URL獲取數據,或是重寫ajax方法
      method:'get',
      cache:false,
      pagination:true,
      sidePagination:'server',//設置為后臺服務器分頁
      pageNumber:1,
      pageSize:10,
      pageList:[10,20,30,40,50],
      queryParamsType:'',//請求參數類型,默認為`limit`,使用默認值不會向后臺出入分頁所需的頁號,頁數據數等必須值,所以需要設置為空串
      queryParams:function(params){//向后臺傳輸參數。params為bootstrap-table的options.
        var param = {
          page:params.pageNumber,//獲取頁號
          size:params.pageSize//獲取頁面數據量大小
        }
        return param;
      },
      uniqueId:'_id',
      toolbar:'#toolbar',
      showColumns:true,
      showRefresh:true,
      showToggle:true,
      search:true,
      columns:[
        {checkbox:true},
        {field:'user_no',title:'用戶編碼',width:'10%'},
        {field:'user_name',title:'用戶姓名',width:'20%'
        },
        {field:'user_sex',title:'用戶性別',width:'8%',align:'center',
          formatter:function(value,row,index){
            if(value == '1'){
              return '男';
            }else{
              return '女';
            }
          }},
        {field:'user_account',title:'登錄賬號',width:'10%'},
        {field:'user_role',title:'所屬角色',width:'10%'},
        {field:'user_sys',title:'所屬系統',width:'10%'},
        {field:'create_time',title:'創建時間',width:'20%',
          formatter:function(value,row,index){
            return dateTimeFormatter(value,'yyyy-MM-dd hh:mm:ss');
          }
        }
      ]
    });

注意: 代碼中注釋不分為在后臺分頁中所必須設置的
后端邏輯代碼:

/********user_route.js*******/
/**
 * 后臺分頁獲取數據列表
 */
router.get('/getUserListPagination',function(req,res){
  var queryParams = req.query;
  var params= {
    page:queryParams.page,
    size:queryParams.size
  };
  userServices.getUserListPagination(params,function(err,users){//根據分頁條件查詢數據條數
    if(err){
      res.send({success:false,msg:err,data:null});
    }else{
      userServices.getUserList(req,res,function(err,allUsers){//查詢所有數據總條數
        if(err){
          res.send({success:false,msg:err,data:null});
        }else{
          res.send({'success':true,'msg':"獲取用戶列表成功",'total':allUsers.length,'rows':users});
        }
      });
    }
  });
});

/**********user_services.js********/
/**
 * 分頁查詢
 * @param params
 * @param callback
 */
exports.getUserListPagination = function(params,callback){

  var index = (params.page-1)*params.size;//設置分頁起點下標
  var size = parseInt(params.size);
  //設置分頁條件
  var query = userModel.$user.find({});
  query.limit(size);//條數
  query.skip(index);//下標

  //執行查詢
  query.exec(function(err,users){
    callback(err,users);
  });
}

注意: 選擇后臺分頁,返回到前臺的數據必須包含 total rows 兩個參數,total為數據總數;rows為返回的數據數,也是一個數組對象

感謝各位的閱讀!關于“Node.js中Bootstrap-table如何實現分頁”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

莆田市| 上蔡县| 陵川县| 县级市| 乌拉特中旗| 迁西县| 怀安县| 黔东| 西吉县| 梁河县| 汤阴县| 南投县| 长寿区| 介休市| 大港区| 咸丰县| 青海省| 赣榆县| 固始县| 长阳| 讷河市| 彭泽县| 兴仁县| 达日县| 抚松县| 台山市| 万宁市| 镇雄县| 丹寨县| 隆子县| 西乌珠穆沁旗| 云安县| 平谷区| 盘锦市| 竹北市| 林芝县| 阳信县| 朝阳市| 泾阳县| 封开县| 桃园市|