美文网首页我爱编程
bootstrap table的使用笔记

bootstrap table的使用笔记

作者: 江小石 | 来源:发表于2017-08-03 10:55 被阅读0次

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('    ');
    }

相关文章

网友评论

    本文标题:bootstrap table的使用笔记

    本文链接:https://www.haomeiwen.com/subject/iynulxtx.html