bootstrap table加載失敗


轉載於:https://www.cnblogs.com/yiliangmi/p/10518176.html

bootstrap table使用及遇到的問題

 

本人前端菜鳥一枚,最近使用bootstrap table實現表格,記錄一下以便日后翻閱,廢話不多說,先看效果圖:

1、首先說下要實現該效果需要添加的css樣式及所需的js文件,具體下載地址就不粘貼了(因為太懶)

復制代碼
 <link rel="stylesheet" href="css/bootstrap.min.css">
 <link rel="stylesheet" href="css/bootstrap-table.min.css">
 <script src="js/jquery-2.1.4.min.js"></script>
 <script src="js/bootstrap.min.js"></script>
 <script src="js/bootstrap-table.min.js"></script>
 <script src="js/bootstrap-table-zh-CN.js"></script>
復制代碼

2、html頁面中需要准備的元素如下:

復制代碼
 <div class="container">
     <!--存放工具欄-->
     <div id="toolbar"></div>
     <!--存放生成的表格-->
     <table id="searchResults" class="table table-hover">
     </table>
 </div>
復制代碼

3、萬事俱備只欠東風,東風就是數據問題,這里有一點需要注明,客戶端(client)的數據和服務端(server)的數據格式略有差異,這里展示出來以供參考(本人使用的是客戶端的數據)。

客戶端數據格式(clientJson.json):

 

復制代碼
[
    {
        "id": 0,
        "name": "李雷",
        "sex": "男",
        "age": "12",
        "cls": "一年級",
        "score": "81",
        "action": "操作"
    },
    {
        "id": 1,
        "name": "韓梅梅",
        "sex": "女",
        "age": "11",
        "cls": "一年級",
        "score": "90",
        "action": "操作"
    }
]
復制代碼

 

服務端數據格式(serverJson.json):

復制代碼
{
  "total": 2,
  "rows": [
    {
      "id": 0,
      "name": "李雷",
      "sex": "男",
      "age": "12",
      "cls": "一年級",
      "score": "81"
    },
    {
      "id": 1,
      "name": "韓梅梅",
      "sex": "女",
      "age": "11",
      "cls": "一年級",
      "score": "90"
    }
  ]
}
復制代碼

 

4、所有的css、js、頁面元素及數據都已經准備完畢,那么該如何生成表格呢?請看下面代碼及注釋,部分模塊的顯示效果已經在文章開頭的圖片中顯示出來,請看官對號入座。

復制代碼
function createTab() {
        $('#searchResults').bootstrapTable('destroy').bootstrapTable({
            url: 'json/clientJson.json',
            /*data : data,*/

            toolbar: '#toolbar',                //工具按鈕用哪個容器
            method: 'get',                      //請求方式
            striped: true,                      //是否顯示行間隔色
//            cache: false,                       //是否使用緩存
            toolbarAlign: "right", //工具欄對齊方式
            sidePagination: "client", //分頁方式:client客戶端分頁,server服務端分頁
            search: true,//是否顯示表格搜索,此搜索是客戶端搜索,不會進服務端
            uniqueId: "id",
            pageNumber: 1,                       //初始化加載第一頁
            pageSize: 1,                       //每頁的記錄行數
            pageList: [1, 2, 3], //可供選擇的每頁的行數
            pagination: true, // 是否分頁
            sortable: true, // 是否啟用排序
            sortOrder: "asc",                   //排序方式
            showColumns: true, //是否顯示列選擇按鈕
            showRefresh: true,                  //是否顯示刷新按鈕
            clickToSelect: true,                //是否啟用點擊選中行
//            height: 500,                        //行高
            showToggle: true,                    //是否顯示詳細視圖和列表視圖的切換按鈕
            cardView: false,                    //是否顯示詳細視圖
            detailView: false,                   //是否顯示父子表
            queryParamsType: '',//設置請求參數格式
            queryParams: function queryParams(params) { //設自定義查詢參數
                /*請求遠程數據時,您可以通過修改queryParams來發送其他參數。
                如果queryParamsType = 'limit',params對象包含:limit,offset,search,sort,order。
                否則,它包含:pageSize,pageNumber,searchText,sortName,sortOrder。
                返回false停止請求。
                默認: function(params) { return params }*/
                return params;
            },
            columns: [
                {
                    title: "全選",
                    field: "select",
                    checkbox: true,
                    width: 20, //寬度
                    align: "center", //水平
                    valign: "middle" //垂直
                },
                {
                    field: 'no',
                    title: '序號',
                    align: "center",
                    formatter: function (value, row, index) {
                        return index + 1;
                    }
                }
                ,
                {
                    field: 'name',
                    title: '名字',
                    align: 'center',
                    valign: 'middle'
                },
                {
                    field: 'sex',
                    title: '性別',
                    align: 'center',
                    valign: 'middle'
                },
                {
                    field: 'age',
                    title: '年齡',
                    align: 'center',
                    valign: 'middle'
                },
                {
                    field: 'cls',
                    title: '年級',
                    align: 'center',
                    valign: 'middle',
                },
                {
                    field: 'score',
                    title: '分數',
                    align: 'center',
                    valign: 'middle',
                },
                {
                    field: 'id',
                    title: '操作',
                    width: 120,
                    align: 'center',
                    valign: 'middle',
                    formatter: actionFormatter
                }
            ]
        });

    }

    //操作欄的格式化
    function actionFormatter(value, row, index) {
        var id = row.id;
        var result = "";
        result += "<button style='cursor: pointer' class='btn btn-primary' title='修改' onclick=''>修改</button>";
        return result;
    }
復制代碼

4、ok,現在表格已經展示出來了,過程很簡單,但是我剛開始做的時候碰見一個問題: Syntax error, unrecognized expression,如下圖所示。wfk?搗鼓半天終於發現,是jquery的版本問題,1.9的版本顯然不好使,於是換成2.1的版本,終於大功告成。

5、最后,雙手送上完整代碼:

復制代碼
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表格及下載</title>
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <link rel="stylesheet" href="css/bootstrap-table.min.css">
    <!--<script src="js/jquery-2.1.4.min.js"></script>-->
      <script src="js/jquery-1.9.1.min.js"></script>
    <script src="js/bootstrap.min.js"></script>
    <script src="js/bootstrap-table.min.js"></script>
    <script src="js/bootstrap-table-zh-CN.js"></script>
</head>
<body>
<div class="container text-center">
    <button name='createTab' id='creatTab' type="button"
            class="btn btn-primary" onclick="createTab()">生成表格
    </button>
</div>
<div class="container">
    <!--存放工具欄-->
    <div id="toolbar"></div>
    <!--存放生成的表格-->
    <table id="searchResults" class="table table-hover">
    </table>
</div>
</body>
<script>
    function createTab() {
        $('#searchResults').bootstrapTable('destroy').bootstrapTable({
            url: 'json/clientJson.json',
            /*data : data,*/

            toolbar: '#toolbar',                //工具按鈕用哪個容器
            method: 'get',                      //請求方式(*)
            striped: true,                      //是否顯示行間隔色
//            cache: false,                       //是否使用緩存
            toolbarAlign: "right", //工具欄對齊方式
            sidePagination: "client", //分頁方式:client客戶端分頁,server服務端分頁(*)
            search: true,//是否顯示表格搜索,此搜索是客戶端搜索,不會進服務端
            uniqueId: "id",
            pageNumber: 1,                       //初始化加載第一頁
            pageSize: 1,                       //每頁的記錄行數
            pageList: [1, 2, 3], //可供選擇的每頁的行數
            pagination: true, // 是否分頁
            sortable: true, // 是否啟用排序
            sortOrder: "asc",                   //排序方式
            showColumns: true, //是否顯示列選擇按鈕
            showRefresh: true,                  //是否顯示刷新按鈕
            clickToSelect: true,                //是否啟用點擊選中行
//            height: 500,                        //行高
            showToggle: true,                    //是否顯示詳細視圖和列表視圖的切換按鈕
            cardView: false,                    //是否顯示詳細視圖
            detailView: false,                   //是否顯示父子表
            queryParamsType: '',//設置請求參數格式
            queryParams: function queryParams(params) { //設自定義查詢參數
                /*請求遠程數據時,您可以通過修改queryParams來發送其他參數。
                如果queryParamsType = 'limit',params對象包含:limit,offset,search,sort,order。
                否則,它包含:pageSize,pageNumber,searchText,sortName,sortOrder。
                返回false停止請求。
                默認: function(params) { return params }*/
                return params;
            },
            columns: [
                {
                    title: "全選",
                    field: "select",
                    checkbox: true,
                    width: 20, //寬度
                    align: "center", //水平
                    valign: "middle" //垂直
                },
                {
                    field: 'no',
                    title: '序號',
                    align: "center",
                    formatter: function (value, row, index) {
                        return index + 1;
                    }
                }
                ,
                {
                    field: 'name',
                    title: '名字',
                    align: 'center',
                    valign: 'middle'
                },
                {
                    field: 'sex',
                    title: '性別',
                    align: 'center',
                    valign: 'middle'
                },
                {
                    field: 'age',
                    title: '年齡',
                    align: 'center',
                    valign: 'middle'
                },
                {
                    field: 'cls',
                    title: '年級',
                    align: 'center',
                    valign: 'middle',
                },
                {
                    field: 'score',
                    title: '分數',
                    align: 'center',
                    valign: 'middle',
                },
                {
                    field: 'id',
                    title: '操作',
                    width: 120,
                    align: 'center',
                    valign: 'middle',
                    formatter: actionFormatter
                }
            ]
        });

    }

    //操作欄的格式化
    function actionFormatter(value, row, index) {
        var id = row.id;
        var result = "";
        result += "<button style='cursor: pointer' class='btn btn-primary' title='修改' onclick=''>修改</button>";
        return result;
    }
</script>
</html>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM