亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

Bootstrap Table從服務器加載數據進行顯示的實現方法

2019-11-20 08:51:06
字體:
來源:轉載
供稿:網友

Bootstrap-Table是一個Boostrap的表格插件,能夠將JSON數據直接顯示在表格中。當然,這需要配置一些參數并進行初始化表格才行。其官方網站地址為:http://bootstrap-table.wenzhixin.net.cn/。里面可以下載使用所需的JS和CSS文件,以及參考文檔和例子。

        Bootstrap-Table顯示數據到表格的方式有兩種,一種是客戶端(client)模式,一種是服務器(server)模式。

        所謂客戶端模式,指的是在服務器中把要顯示到表格的數據一次性加載出來,然后轉換成JSON格式傳到要顯示的界面中,在JavaWeb中可以保存在request中,然后轉發到指定界面,在界面初始化的時候使用EL表達式獲取,然后調用相關初始化的函數,將JSON字符串傳進去即可顯示??蛻舳四J捷^為簡單,它是把數據一次性加載出來放到界面上,然后根據你設置的每頁記錄數,自動生成分頁。當點擊第二頁時,會自動加載出數據,不會再向服務器發送請求。同時用戶可以使用其自帶的搜索功能,可以實現全數據搜索。對于數據量較少的時候,可以使用這個方法。但是對于數據量大的系統,使用該方法會造成加載出一些很久之前的,用戶不在關注的數據,使得加載速度變慢,增加了服務器的負擔,浪費了資源。這時應該采用服務器模式。

        所謂服務器模式,指的是根據設定的每頁記錄數和當前要顯示的頁碼,發送數據到服務器進行查詢,然后再顯示到表格中。該方法可以根據用戶的需要動態的加載數據,節省了服務器的資源,但是不能使用其自帶的全數據搜索功能。因為你加載的數據只是一頁的數據,所以全數據搜索的范圍也只在一頁之中。

       客戶端模式較為簡單,讀者可根據官方文檔和例子自行實踐。這里主要介紹服務器模式,并可以實現帶參數的查詢。

系統界面如下圖:

        上圖中是使用Bootstrap-Table實現的一個界面,并帶有一個輸入框和查詢按鈕。在輸入框中輸入單號,點擊查詢可以到后臺進行查詢,再把查詢結果的數據顯示到表格中。由于數據庫中數據較少,為了看到效果,所以每頁設置顯示一條數據。
以下是前端界面代碼:

        首先引入相應的JS和CSS文件。定義一個表格標簽,配置相關的boostrap-table屬性,在此省略了列的代碼。

<link href="css/bootstrap.min.css" rel="stylesheet" type="text/css"> <link href="css/bootstrap-table.min.css" rel="stylesheet" type="text/css"> <script src="js/jquery.min.js"></script> <script src="js/bootstrap.min.js"></script> <script src="js/plugins/bootstrap-table.min.js"></script> <script src="js/plugins/bootstrap-table-zh-CN.js"></script> <table class="table table-hover" id="cusTable"   data-pagination="true"   data-show-refresh="true"   data-show-toggle="true"   data-showColumns="true">   <thead>    <tr>                   <th data-field="sellRecordId" data-sortable="true">        銷售記錄id     </th>     <th data-field="srNumber" >        銷售單號     </th>     <!-- 在此省略表格列的代碼,代碼和上面差不多 -->     <th class="col-xs-2" data-field="action" data-formatter="actionFormatter" data-events="actionEvents">Action</th>     </tr>   </thead>   <tbody>   </tbody> </table> 

        以下是JavaScript代碼:定義了一個函數initTable()用于初始化表格。第7行method指定了請求的提交方式,我嘗試了設置為post提交,結果發現后端取不到查詢參數,不知道為什么,所以使用get提交。第8行url設置你要提交請求的地址,這里在JSP中使用了C標簽。第17行指定了服務端模式加載數據。第20行指定了查詢參數的類型,可以設置為undefined或limit,不同的設置可以在queryParams的函數中獲取不同的參數。第23-25行分別獲取了頁碼、每頁記錄數、查詢條件,作為查詢的參數返回。這里只有一個條件,如果要多條件查詢的話,只需獲得多個條件即可。第40行在ready中調用函數獲取后端數據顯示在表格中。第43行為查詢按鈕綁定了一個單擊事件,當輸入單號并點擊查詢時執行。由于查詢是在第一次加載表格之后才有的動作,所以在第4行中要先調用bootstrap-table提供的函數銷毀表格,不然點擊查詢時無法到后臺加載數據。

<script type="text/javascript">     function initTable() {   //先銷毀表格   $('#cusTable').bootstrapTable('destroy');   //初始化表格,動態從服務器加載數據   $("#cusTable").bootstrapTable({    method: "get", //使用get請求到服務器獲取數據    url: "<c:url value='/SellServlet?act=ajaxGetSellRecord'/>", //獲取數據的Servlet地址    striped: true, //表格顯示條紋    pagination: true, //啟動分頁    pageSize: 1, //每頁顯示的記錄數    pageNumber:1, //當前第幾頁    pageList: [5, 10, 15, 20, 25], //記錄數可選列表    search: false, //是否啟用查詢    showColumns: true, //顯示下拉框勾選要顯示的列    showRefresh: true, //顯示刷新按鈕    sidePagination: "server", //表示服務端請求    //設置為undefined可以獲取pageNumber,pageSize,searchText,sortName,sortOrder    //設置為limit可以獲取limit, offset, search, sort, order    queryParamsType : "undefined",    queryParams: function queryParams(params) { //設置查詢參數     var param = {      pageNumber: params.pageNumber,      pageSize: params.pageSize,      orderNum : $("#orderNum").val()     };     return param;        },    onLoadSuccess: function(){ //加載成功時執行     layer.msg("加載成功");    },    onLoadError: function(){ //加載失敗時執行     layer.msg("加載數據失敗", {time : 1500, icon : 2});    }    });   }   $(document).ready(function () {      //調用函數,初始化表格    initTable();    //當點擊查詢按鈕的時候執行    $("#search").bind("click", initTable);   }); </script> 

后端servlet代碼:

        在servlet中獲取act參數后,調用如下代碼。然后調用service業務邏輯進行查找,service中進行判斷,是否orderNum為空字符串,如果為空則不帶orderNum參數查詢,如果不會空則要帶orderNum條件查詢。service中調用dao,dao中的函數也要根據orderNum參數是否為空而生成不同的SQL語句和查詢參數。第23行將查詢的記錄轉成json字符串,第25行得到滿足條件的總的記錄數。注意第28行設置了返回前端的json,這里需要返回兩個參數,一個是total,表示總記錄數,一個是rows,表示表格數據。

/**   * 根據頁碼和每頁記錄數,以及查詢條件動態加載銷售記錄   * @param request   * @param response   * @throws IOException   * @author lzx   */  private void ajaxGetSellRecord(HttpServletRequest request,    HttpServletResponse response) throws IOException {   response.setCharacterEncoding("utf-8");   PrintWriter pw = response.getWriter();   //得到客戶端傳遞的頁碼和每頁記錄數,并轉換成int類型   int pageSize = Integer.parseInt(request.getParameter("pageSize"));   int pageNumber = Integer.parseInt(request.getParameter("pageNumber"));   String orderNum = request.getParameter("orderNum");   //分頁查找商品銷售記錄,需判斷是否有帶查詢條件   List<SimsSellRecord> sellRecordList = null;   sellRecordList = sellRecordService.querySellRecordByPage(pageNumber, pageSize, orderNum);   //將商品銷售記錄轉換成json字符串   String sellRecordJson = sellRecordService.getSellRecordJson(sellRecordList);   //得到總記錄數   int total = sellRecordService.countSellRecord(orderNum);   //需要返回的數據有總記錄數和行數據   String json = "{/"total/":" + total + ",/"rows/":" + sellRecordJson + "}";   pw.print(json);  } 

以上所述是小編給大家介紹的 Bootstrap Table從服務器加載數據進行顯示的實現方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品视频在线播放| 国产日韩专区在线| 精品久久久久久久中文字幕| 国产精品久久久久高潮| 狠狠做深爱婷婷久久综合一区| 亚洲午夜精品久久久久久久久久久久| 亚洲免费电影在线观看| 日韩成人av网址| 日韩在线视频网站| 日韩av免费网站| 久久久久久久影院| 午夜精品一区二区三区在线| 国产日本欧美在线观看| 亚洲在线免费观看| 欧美一级大片在线观看| 日韩一区二区久久久| 国产不卡一区二区在线播放| 欧美多人乱p欧美4p久久| 亚洲精品国产福利| 久久综合免费视频影院| 国产精品91免费在线| 国产欧美日韩中文字幕| 亚洲裸体xxxx| 国产在线视频一区| 亚洲va国产va天堂va久久| 欧美电影免费观看高清| 青草成人免费视频| 亚洲国产精品va在线观看黑人| 亚洲国产99精品国自产| 欧美一级黄色网| 伊人久久五月天| 日韩视频一区在线| 成人深夜直播免费观看| 一区二区在线视频播放| 亚洲裸体xxxx| 最近2019好看的中文字幕免费| 久久亚洲精品成人| 川上优av一区二区线观看| 成人字幕网zmw| 欧美国产极速在线| 日韩成人在线网站| 精品高清一区二区三区| 韩国国内大量揄拍精品视频| 亚洲а∨天堂久久精品喷水| 久久影视电视剧免费网站清宫辞电视| 日本精品视频在线观看| 久久精品99久久久久久久久| 日韩欧美国产免费播放| 中文字幕亚洲在线| 日韩av在线高清| www.午夜精品| 亚洲精品mp4| 成人国产精品免费视频| 久久香蕉精品香蕉| 亚洲精品久久久一区二区三区| 精品视频久久久久久久| 亚洲精品视频免费在线观看| 欧美日韩国产一中文字不卡| 免费91麻豆精品国产自产在线观看| 国产精品免费视频xxxx| 热久久视久久精品18亚洲精品| 亚洲精品国产suv| 成人黄色午夜影院| 日韩精品黄色网| 午夜精品一区二区三区在线视| 国产精品午夜视频| 欧美日本啪啪无遮挡网站| 91av视频在线播放| 国产成+人+综合+亚洲欧洲| 在线观看日韩av| 久久久91精品国产一区不卡| 欧美在线日韩在线| 国产精品一香蕉国产线看观看| 久久久久久亚洲精品中文字幕| 热门国产精品亚洲第一区在线| 亚洲精品福利在线观看| 国产mv免费观看入口亚洲| 国产精品久久久久av免费| 久久影院资源站| 亚洲一区二区三区sesese| 国产精品揄拍一区二区| 日本不卡视频在线播放| 国产精品直播网红| 日韩中文字幕网| 神马久久桃色视频| 欧美日韩一区二区三区在线免费观看| 欧美日韩国产va另类| 国产欧美日韩精品在线观看| 欧美精品在线看| 亚洲欧美激情视频| 成人www视频在线观看| 国产成人av在线播放| 懂色av影视一区二区三区| 欧美一级视频一区二区| 欧美乱大交xxxxx另类电影| 精品福利樱桃av导航| 亚洲无线码在线一区观看| 性色av一区二区三区在线观看| 欧美丰满少妇xxxx| 日本19禁啪啪免费观看www| 国产精品91久久久| 久久久999精品视频| 亚洲国产精品小视频| 欧美激情亚洲综合一区| 日本a级片电影一区二区| 18性欧美xxxⅹ性满足| 精品动漫一区二区三区| 欧美大奶子在线| 欧美色videos| 在线观看日韩www视频免费| 精品高清一区二区三区| 成人黄色av免费在线观看| 国产精品成久久久久三级| 日韩精品在线观| 久久99久久99精品免观看粉嫩| 91精品综合视频| 日韩av理论片| 久久亚洲精品成人| 国产成人一区二区三区| 精品视频一区在线视频| 日韩成人在线视频| 欧美人与性动交a欧美精品| 4438全国成人免费| 亚洲欧美日韩国产中文专区| 亚洲第一区在线观看| 日韩精品在线第一页| 中文字幕成人精品久久不卡| 国产精品第2页| 国产精品∨欧美精品v日韩精品| 国产精品高潮视频| 亚洲欧美日韩中文在线| 91高清视频在线免费观看| 97人洗澡人人免费公开视频碰碰碰| 97久久精品人搡人人玩| 98视频在线噜噜噜国产| 欧美激情视频免费观看| 中文字幕综合一区| 日韩美女av在线| 国产日韩精品在线| 国产精品欧美风情| 国产亚洲aⅴaaaaaa毛片| 2018中文字幕一区二区三区| 国产成一区二区| 久久91精品国产| 欧美日韩在线视频观看| 欧美激情第三页| 成人有码在线播放| 久久亚洲电影天堂| 久久久av电影| 成人h猎奇视频网站| 久久精视频免费在线久久完整在线看| 亚洲精品资源在线| 日本欧美一二三区| 亚洲va男人天堂| 国产极品jizzhd欧美| 成人免费大片黄在线播放| 欧美日韩999| 日韩精品免费一线在线观看| 国产欧美中文字幕| 国产精品一区av| 国模精品视频一区二区三区| 亚洲精品丝袜日韩| 久久精品亚洲一区| 国产91精品黑色丝袜高跟鞋|