BoostrapTable表格

一、數據加載,前後臺交互

1. 直接html獲取數據

這樣定義了表格結構,也把後臺返回的數據通過EL表達式顯示數據。

                   <table id="table" 
                           data-pagination="true"
                           data-page-list="[5,10,20,50,100,200]"
                           data-toggle="table">
                        <thead>
                            <tr class="alert-info">
                                    <th data-align="center">index</th>
                                    <th data-align="center">name</th>
                                </tr>
                        </thead>
                        <tbody>
                            <c:forEach items="${child}" var="li" varStatus="vs">
                                <tr>
                                    <td>${vs.index+1}</td>
                                    <td><a href="childInfo?childID=${li.id}">${li.name}</a></td>
                                </tr>
                            </c:forEach>
                        </tbody>
                    </table>

2. 通過定義對象加載

html中定義表頭或者js中定義columns都可以

        <table id="table">
            <thead>
            <tr>
                <th data-field="id">ID</th>
                <th data-field="name">Item Name</th>
                <th data-field="price">Item Price</th>
            </tr>
            </thead>
        </table>
    </div>
<script>
    var $table = $('#table');

    $(function () {
        var data = [
            {
                "id": 0,
                "name": "Item 0",
                "price": "$0"
            },
            {
                "id": 1,
                "name": "Item 1",
                "price": "$1"
            },
            {
                "id": 2,
                "name": "Item 2",
                "price": "$2"
            }
        ];
        $table.bootstrapTable({data: data});
    });

3. 通過url發送請求獲取

(1) 直接發送請求

 //定義表格模型
 var columnModel =  [{
        field: 'state',
        checkbox:true,
        title: '選擇'
    }, {
        field: 'index',
        formatter:indexFormatter,//可定義這一列的一些樣式
        title: 'index'
    },
        {
        field: 'id',
        title: 'Item ID'
    }, {
        field: 'name',
        title: 'Item Name'
    }, {
        field: 'price',
        title: 'Item Price'
    }];
	
 $table.bootstrapTable({
	 method:'get',
	 url:'loadData', //ajax請求或者外部文件路徑都可以
	 columns:columnModel
 });	

 /**
  * 顯示行號
  */
 function indexFormatter(value,row,index){
     return index+1;
 }

 /**
  * 改爲鏈接,或者增加一些樣式
 */
function indexFormatter(value,row,index){
     return [
       '<a href="javascript:getId('+row.id+');" title="getId">',
       '<i class="glyphicon glyphicon-export" aria-hidden="true"></i>',
       '</a>'
      ].join('');
 } 

(2)更改請求

 $table.bootstrapTable('refresh',{
		 url:'loadDateAgain?param1='+param1+'param2='+param2});
當然也可以更改其他的屬性。

(3)外部文件加載

 <table id="table"
         data-toggle="table"
         data-url="../json/data2.json">
</table>

或者

 $table.bootstrapTable({
	 method:'get',
	 url:'json/data2.json', //ajax請求或者外部文件路徑都可以
	 pagination:true,
	 sidePagination:'client',
	 pageNumber:1,
	 pageSize:10,
	 pageList:[5,10,15,20,50,100,200],
	 columns:columnModel
 });	

二、翻頁

1. 前臺翻頁

一次性獲取了全部的數據,從前臺進行翻頁, 可以在js或者html中定義

 $table.bootstrapTable({
	 method:'get',
	 url:'loadHistory',
	 pagination:true,
	 sidePagination:'client',
	 pageNumber:1,
	 pageSize:10,
	 pageList:[5,10,15,20,50,100,200],
	 columns:columnModel
 });

2. 後臺翻頁

從後臺獲取指定的頁碼的數據

  $table.bootstrapTable({
	 method:'get',
	 url:'loadData',
	 pagination:true,
	 sidePagination:'server',
	 pageNumber:1, //默認的頁碼
	 pageSize:10, //默認每頁數據量
	 pageList:[5,10,15,20,50,100,200], 
	 queryParams: queryParams, //返回傳給後臺的參數
     queryParamsType: "notlimit",//'limit', the params object contains:  limit, offset, search, sort, order;
         //Else, it contains: pageSize, pageNumber, searchText, sortName, sortOrder. Return false to stop request.
         responseHandler: responseHandler,//對返回數據的預處理
	 columns:columnModel 
 });
 
  /**
 * 分頁參數
 */
function queryParams(params) {
	 return {
		 pageSize:params.pageSize,
		 pageNumber:params.pageNumber
	 }
 }
 
/**
 *返回數據格式化
 */
function responseHandler(res){
	return {
		"rows":res.list,
		"total":res.rowsCount
	}
} 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章