關(guān)于bootstrapTable的高級(jí)玩法

0x01 比較low的tables


之前在各大項(xiàng)目里面,用的最多的是datatables,因?yàn)檫@個(gè)玩意可以讓你偷懶,不用寫分頁(yè)功能,壞處就是一次性加載所有數(shù)據(jù),對(duì)性能略有影響。對(duì)于數(shù)據(jù)量不是特別大的情況下,datatables其實(shí)挺好的,但是對(duì)于各個(gè)bootstrap模版之間的兼容性,這個(gè)玩意就比較悲劇了,而且,改起來(lái)特別費(fèi)勁。然后就有了替代的想法,構(gòu)建一個(gè)自己長(zhǎng)期使用、可維護(hù)性高的tables插件就是成為了我一直追求的目標(biāo)。后來(lái)在研究某個(gè)bt模版的時(shí)候,發(fā)現(xiàn)bootstrapTable其實(shí)也很牛逼,所以有了這篇文章。

0x02 代碼走你


且不說別的,先上自己封裝好的代碼。

/*
 *
 * Copyright (c) 2016
 * Author: Smarttang
 * Github: https://github.com/smarttang/
 * ======
 * 用于列表插件的匯聚
 */

var tables;

(function(){
    
    "use strict";

    tables = {
        // 構(gòu)建表格
        draw: function(params)
        {
            // 節(jié)點(diǎn)判斷
            var _node = document.getElementById(params.ElementId);
            // 判斷是否存在
            if (_node){
                $('#'+params.ElementId).bootstrapTable({
                    method: 'POST',
                    dataType: "json",
                    url: params.remoteUrl,
                    search: true,  //是否顯示搜索框功能
                    pagination: true,  //是否分頁(yè)
                    showRefresh: true, //是否顯示刷新功能 
                    showColumns: true,
                    queryParams: params.queryParas, //參數(shù)
                    silent: true,  //刷新事件必須設(shè)置
                    iconSize: 'outline',
                    detailView: false,
                    contentType: 'application/x-www-form-urlencoded',
                    columns: params.columnsList,
                    icons: {
                        refresh: 'glyphicon-repeat',
                        toggle: 'glyphicon-list-alt',
                        columns: 'glyphicon-list'
                    },
                    responseHandler: params.responseED,
                    formatLoadingMessage: function () {
                        return "請(qǐng)稍等,正在加載中...";
                    },
                    formatNoMatches: function () {  //沒有匹配的結(jié)果
                        return '無(wú)符合條件的記錄';
                    },
                    onLoadSuccess: function(){
                        $("[data-toggle='tooltip']").tooltip();
                    }
                });
            }
        },
        // 刷新表格
        refresh: function(id)
        {
            $('#'+id).bootstrapTable('refresh');
        }
    }
})(jQuery);

代碼特別簡(jiǎn)單,沒有特別復(fù)雜的東西,簡(jiǎn)單說下這個(gè)插件上,我摸的一些坑。第一個(gè)坑在contentType上,這個(gè)值比較奇葩,在請(qǐng)求的過程里面,默認(rèn)我的請(qǐng)求是以form的方式進(jìn)行請(qǐng)求的,而默認(rèn)的情況下,它的請(qǐng)求是text/html,導(dǎo)致一直在后端獲取不到值。

正常的request

只有這種情況下,請(qǐng)求才是正確的。會(huì)是以下的請(qǐng)求~
params值

這個(gè)坑略悲劇,還好調(diào)的時(shí)候認(rèn)真看了下才發(fā)現(xiàn)的。。

0x03 結(jié)束


這個(gè)插件感覺比datatables好用,而且相對(duì)比較靈活豐滿些。在各個(gè)模版上兼容比較好。推薦使用吧~

0x04 參考


http://bootstrap-table.wenzhixin.net.cn/zh-cn/documentation/
http://www.tuicool.com/articles/aAB7fei

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,406評(píng)論 4 61
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,578評(píng)論 19 139
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一種新的協(xié)議。它實(shí)...
    香橙柚子閱讀 24,773評(píng)論 8 183
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,094評(píng)論 25 709
  • 2012年9月12日 是我們這一屆報(bào)道的日子。 2016年6月7日 是班級(jí)拍畢業(yè)照的日子。 2016年6月17日...
    TKTimeless_24閱讀 2,303評(píng)論 22 6

友情鏈接更多精彩內(nèi)容