bootstrap table的使用笔记

1.第一步,引进额外的 js、css,不被bootstrap.js/css所包含

<link href="${ctx}/styles/bootstrap/css/bootstrap-table.min.css")" rel="stylesheet" type="text/css" />

<script type="text/javascript" src="${ctx}/js/bootstrap-table/bootstrap-table.min.js"></script>
<!--table插件的文本翻译成中文-->
<script type="text/javascript" src="${ctx}/js/bootstrap-table/bootstrap-table-zh-CN.min.js"></script>

2.html的方式定义table

<table  id="OperatelistTable" data-toggle="table" id="table" data-url='${ctx}/fee/getList.shtml'                   
    data-query-params="createParams" 
    data-side-pagination="server" data-pagination="true" data-page-list="[5,8,10]"
    data-pagination-first-text="<<" data-pagination-pre-text="<" 
    data-pagination-next-text=">" data-pagination-last-text=">>" data-toolbar=".toolbar">
    <thead>
         <tr>
            <th data-field="id"                 data-align="center" data-visible="false"></th>
            <th data-field="admin.account"      data-align="center">操作人</th>
            <th data-field="createDate"         data-align="center" data-formatter="formatDate">操作时间</th>
            <th data-field="realRepayAmount"    data-align="left" data-formatter="formatRecord">操作内容</th>
        </tr>
    </thead>
</table>

3.js的方式定义table

    var TableInit = function() {
        var oTableInit = new Object();
        //初始化Table
        oTableInit.Init = function() {
            $('#tb_user').bootstrapTable({
                url : '${ctx}/knuser/findByPage.shtml', //请求后台的URL(*)
                //若为post,需要指定contentType : "application/x-www-form-urlencoded",否则controller会接收不到,
                //因为如果不指定contentType的话就会默认以application/json的方式发送数据,java就不能用getParameter拿到内容了,但是可以用输入流接收
                method : 'get', //请求方式(*)
                striped : true, //是否显示行间隔色
                cache : false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
                pagination : true, //是否显示分页(*)
                sortable : false, //是否启用排序
                sortOrder : "asc", //排序方式
                queryParams : oTableInit.queryParams,//传递参数(*)
                sidePagination : "server", //分页方式:client客户端分页,server服务端分页(*)
                pageNumber : 1, //初始化加载第一页,默认第一页
                pageSize : 10, //每页的记录行数(*)
                pageList : [ 10, 25, 50, 100 ], //可供选择的每页的行数(*)
                strictSearch : true,
                showColumns : true, //是否显示所有的列
                showRefresh : true, //是否显示刷新按钮
                clickToSelect : true, //是否启用点击选中行
                //height : 500, //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
                uniqueId : "ID", //每一行的唯一标识,一般为主键列
                showToggle : false, //是否显示详细视图和列表视图的切换按钮
                cardView : false, //是否显示详细视图
                detailView : false, //是否显示父子表
                showRefresh: false, //右上角不显示刷新按钮
                showColumns: false, //不显示列选择按钮
                columns : [ {
                    field : 'name',
                    title : '姓名',
                    formatter: function (value, row, index) {
                        var url="/user/detail.shtml?id="+row.id;
                        var html="<a href=\"javascript:tbLoad('"+url+"')\">"+value+"</a>";
                        return html;
                    }
                    
                }, {
                    field : 'verifyTime',
                    title : '实名时间',
                    //——修改——获取日期列的值进行转换
                    formatter: function (value, row, index) {
                        var unixTimestamp = new Date(value);
                        var commonTime = unixTimestamp.format("yyyy-MM-dd hh:mm");
                        return commonTime;
                    }
                } ]

            });
        };

        //得到查询的参数
        oTableInit.queryParams = function(params) {
            var temp = { //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
                limit : params.limit, //页面大小
                offset : params.offset/10+1, //页码
                key : $("#txt_search_key").val(),
                startDate:oDatepicker.startDate,
                endDate:oDatepicker.endDate,
                platform:$("#select_platform").val(),
                version:$("#select_version").val()
            };
            return temp;
        };
        return oTableInit;
    };

4.禁止自动加载
如果定义table的时候指定了url的值,页面刚出来就会立即加载一次数据,如果不希望这样,就在定义的时候不设置url或者url:''
然后在需要加载的时候调用$('#tb_order').bootstrapTable('refreshOptions', {url: '${ctx}/order/findByPage.shtml'});
注意:refreshOptions和refresh的区别是refreshOptions会改变table的属性值,refresh不会改变旧的url以至于虽然此次调用刷新了表格但是分页的时候点击还是调用旧的url(如果旧的url没有值会导致点击下一页没有反应);其共同点是都会根据新的url刷新表格
5.列响应多个时点击事件

image.png

html

<th data-field="id"     data-align="center" data-formatter="formatOperate" data-events="operateEvents">操作</th>

js代码

$(function() {
   window.operateEvents = {
                'click .href_h': function (e, value, row, index) {
                    $("#listModal").modal({backdrop:false});
                    $("#listModal").modal({backdrop:false});
                    var url="search?id="+row.id;
                    $("#listmodal_table").bootstrapTable('refreshOptions',{'url':url});
                    return false;
                },
                'click .href_u': function (e, value, row, index) {
                    $("#editModal").modal({backdrop:false});
                    $("#form_data input[name='id']").val(row['id']);
                    $("#form_data input[name='channelId']").val(row['channelId']);
                    return false;
                }
    }
}
//动态生成操作链接的html
function formatOperate(value, row, index){
        var html=["<a class=\"href_h\" href='javascript:void(0)'>历史记录</a>","<a class=\"href_u\" href='#'>修改</a>"];
        return html.join('    ');
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,596评论 18 139
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,727评论 1 92
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,019评论 4 62
  • (一看这题目就是呼应熊咩咩的~嗯,确实是!) 雨天的时候经过上班的路,看到娇弱的满地残红,昨日还在手机里耀武扬威,...
    菜小肉阅读 359评论 24 1
  • 巨石阵(Stonehenge),也叫做圆形石林,位于英国埃姆斯伯里。建造年代约在公元前4000-公元前2000年,...
    NY123阅读 258评论 0 0