原文地址:https://blog.csdn.net/javayoucome/article/details/80081771javascript
1.介紹
Bootstrap Table介紹見官網:http://bootstrap-table.wenzhixin.net.cn/zh-cn/css
Bootstrap 中文網:http://www.bootcss.com/ html
Bootstrap Table Demo:http://issues.wenzhixin.net.cn/bootstrap-table/index.htmljava
Bootstrap Table API:http://bootstrap-table.wenzhixin.net.cn/zh-cn/documentation/jquery
Bootstrap Table源碼:https://github.com/wenzhixin/bootstrap-tableandroid
Boostrap Table 擴展API:http://bootstrap-table.wenzhixin.net.cn/extensions/git
2.頁面引用
爲了方便bootstrap及bootstrap-table用官方推薦引用方式,想本身下載源碼能夠自行下載.github
導出Excel所需額外的4個js可從如下2個地址找到那4個文件,不須要導出的能夠無視.web
下載地址 https://github.com/wenzhixin/bootstrap-table/tree/master/src/extensions/export數據庫
https://github.com/hhurz/tableExport.jquery.plugin
-
-
-
<link href="https://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
-
<!-- 引入bootstrap-table樣式 -->
-
<link href="https://cdn.bootcss.com/bootstrap-table/1.11.1/bootstrap-table.min.css" rel="stylesheet">
-
-
<!-- jquery及bootstrapjs -->
-
<script src="https://cdn.bootcss.com/jquery/2.2.3/jquery.min.js"></script>
-
<script src="https://cdn.bootcss.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
-
-
<!-- bootstrap-table.min.js -->
-
<script src="https://cdn.bootcss.com/bootstrap-table/1.11.1/bootstrap-table.min.js"></script>
-
-
<script src="https://cdn.bootcss.com/bootstrap-table/1.11.1/locale/bootstrap-table-zh-CN.min.js"></script>
-
<!-- bootstrap-table-export數據導出---後面兩個是Excel2007所須要的js -->
-
<script src="${basePath }/js/bootstrap-table-export.js"></script>
-
<script src="${basePath }/js/tableExport.min.js"></script>
-
<script src="${basePath }/js/xlsx.core.min.js"></script>
-
<script src="${basePath }/js/FileSaver.min.js"></script>
3.簡單示例
3.1在html中定義一個table標籤
<table id="table"></table>
3.2使用bootstrap-table有兩種方式,第一種是:經過data屬性的方法--由於不靈活不作過多演示.相似
-
<table data-toggle=
"table" data-url="data1.json">
-
-
-
<th data-field="id">Item ID</th>
-
<th data-field="name">Item Name</th>
-
<th data-field="price">Item Price</th>
-
-
-
3.3使用JavaScript方式,幾乎全部使用bootstrap-table的全是以這種方式,學習bootstrap-table,就是學習它的API,介紹基本經常使用的API,詳情請查看官方文檔或看這個博主翻譯的
頁面引入如下js
-
$(
"#table").bootstrapTable({
-
url: base_path +
"/product/list",
-
-
-
sidePagination:
"server",
-
-
queryParams:
function (params) {
-
-
-
-
-
-
-
-
-
-
-
pageList: [
10, 25, 50, 100,'all'],
-
contentType:
"application/x-www-form-urlencoded",
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
field: 'specificationvalues',
-
-
-
-
-
-
-
-
-
-
-
onLoadSuccess: function(){
-
-
-
-
-
-
-
-
-
-
exportTypes:[
'excel','xlsx'],
-
-
-
-
-
-
-
excelstyles: ['background-color', 'color', 'font-size', 'font-weight'],
-
-
-
-
-
-
-
-
var sUserAgent = navigator.userAgent.toLowerCase();
-
var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
-
var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
-
var bIsMidp = sUserAgent.match(/midp/i) == "midp";
-
var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
-
var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
-
var bIsAndroid = sUserAgent.match(/android/i) == "android";
-
var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
-
var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
-
if (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {
-
-
-
-
-
須要注意的項
1.交易測試時分頁先選擇'client',由於分頁是客戶端的話,導出數據會方即可以隨意定義'basic', 'all', 'selected'.若是分頁是服務端的話即便選擇'all導出的也是當前頁('basic'),若是想導出所有話,能夠先將頁面顯示條目數爲所有,再導出當前頁即就是所有數據了.
2.分頁若是是服務端的話返回的json串必須包含2個數據,一個是"total"即全部數據條數.另外一個"rows"即"當前頁"顯示的內容.(見下圖json串格式)

後臺參考代碼(以服務端分頁爲例,若是客戶端分頁先把方法參數去掉,再把for循環改爲循環100次,後直接返回list便可)
-
-
@RequestMapping("/product")
-
public class TestController {
-
-
-
-
public Map<String,Object> listProduct(@RequestParam(value = "limit", required = false)Integer limit, @RequestParam(value = "offset", required = false)Integer offset) {
-
Map<String,Object> map =
new HashMap<>();
-
-
List<SkuExt> list =
new ArrayList<SkuExt>();
-
for (int i = offset; i < limit+offset; i++) {
-
SkuExt skuExt =
new SkuExt();
-
-
skuExt.setProductname(
"商品名稱"+i);
-
skuExt.setCost(
new BigDecimal(i*100));
-
skuExt.setBrankname(
"品牌名稱"+i);
-
skuExt.setSpecificationvalues(
"規格值是"+i);
-
skuExt.setAreaname(
"產地"+i);
-
-
-
-
-
-
--------------------------------------以上就是代碼,效果以下------------------------------------------

showToggle:true這個屬性的效果以下:

導出按鈕效果以下:導出的按鈕和下拉提示應該不是這樣,是我本身改了裏面內容文字,很好實現.

以上,純手寫,大神勿噴.