Bootstrap-table-helper

这篇博客主要介绍了在Bootstrap-table中进行的一些定制化设置,强调了如何更方便地通过JSON传递参数,并探讨了使用extend方法以及如何实现查询条件的传递。内容包括相关代码示例和调用方法。

这版只是在原本的基础上进行了一些设置 一些属性更适合 传递参数设置成json 方便传递参数

重点是练习extend的用法 还有查询条件的传递

引用

  <script src="~/lib/bootstrap/dist/bootstrap-table.js"></script>
    <script src="~/lib/bootstrap/dist/locale/bootstrap-table-zh-CN.min.js"></script>

代码

//$table 页面定义的table
//$search 页面查询条件放在一个form里 $search为form节点
//option 初始化json 初始化时设置的一些table属性 方便某些页面需要的table不同
//searchoption 搜索json 添加一些非搜索框里的查询条件
//pagesize 每页数量
//columns 表头
//rowstype 表格每行样式设置回调函数
//successLoadEvent 加载成功回调函数
var TableInit = function ($table, $search, option, searchoption) {
    var oTableInit = new Object();
    //初始化Table
    oTableInit.Init = function () {
        $table.bootstrapTable($.extend(true, {
            url: "",                      //请求后台的URL(*)
            method: 'get',                      //请求方式(*)
            toolbar: '#toolbar',              //工具按钮用哪个容器
            striped: true,                      //是否显示行间隔色
            cache: false,                       //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
            pagination: true,                   //是否显示分页(*)
            sortable: false,                     //是否启用排序
            sortOrder: "asc",                   //排序方式
            sidePagination: "server",           //分页方式:client客户端分页,server服务端分页(*)
            pageNumber: 1,                      //初始化加载第一页,默认第一页,并记录
            pageSize: 10,                     //每页的记录行数(*)
            pageList: [10, 25, 50, 100],        //可供选择的每页的行数(*)
            search: true,                      //是否显示表格搜索
            strictSearch: true,
            showColumns: true,                  //是否显示所有的列(选择显示的列)
            showRefresh: true,                  //是否显示刷新按钮
            minimumCountColumns: 0,             //最少允许的列数
            clickToSelect: true,                //是否启用点击选中行
            //height: 500,                      //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
            uniqueId: "Id",                     //每一行的唯一标识,一般为主键列
            showToggle: false,                   //是否显示详细视图和列表视图的切换按钮
            cardView: false,                    //是否显示详细视图
            detailView: false,                  //是否显示父子表
            paginationPreText: "上一页",          //页码栏左侧显示信息
            paginationNextText: "下一页",          //页码栏左侧显示信息
            queryParams: oTableInit.queryParams,//得到查询的参数
            //sortable: true,
            columns: [],
            onLoadSuccess: function (data) {
            },
            onLoadError: function () {
            },
            rowStyle: function (row, index) {
                var classesArr = ['active', 'info'];
                var strclass = "";
                if (index % 2 === 0) {//偶数行
                    strclass = classesArr[0];

                } else {//奇数行
                    strclass = classesArr[1];

                }
                return { classes: strclass };

            },//隔行变色
        }, option));

    };
    //搜索按钮 刷新Table,Bootstrap Table 会自动执行重新查询
    oTableInit.Search = function () {
        $table.bootstrapTable('refresh');
    }
    //得到查询的参数
    oTableInit.queryParams = function (params) {
        var json = {};
        if ($search) {
            var form = $search.serializeArray();
            $.each(form, function () {
                if (json[this.name]) {
                    if (!json[this.name].push) {
                        json[this.name] = [json[this.name]];
                    }
                    json[this.name].push();
                } else {
                    json[this.name] = this.value + "";
                }
            });
        }
        json.rows = params.limit;                        //页面大小
        json.page = (params.offset / params.limit) + 1; //页码
        $.extend(true, json, searchoption);
        return json;
    };
    return oTableInit;
};

调用

     var columns = [{
                title: '序号',
                align: "center",
                width: 40,
                formatter: function (value, row, index) {
                    //获取每页显示的数量
                    var pageSize = $('#maptable').bootstrapTable('getOptions').pageSize;
                    //获取当前是第几页
                    var pageNumber = $('#maptable').bootstrapTable('getOptions').pageNumber;
                    //返回序号,注意index是从0开始的,所以要加上1
                    return pageSize * (pageNumber - 1) + index + 1;
                }
            },
            {
                field: 'UserName',
                title: '登录账号',
                align: 'center',
                valign: 'middle',
            },
            {
                field: 'TrueName',
                title: '真实姓名',
                align: 'center',
                valign: 'middle',
            },
            {
                field: 'Call',
                title: '联系方式',
                align: 'center',
                valign: 'middle',
            },
            {
                field: 'Id',
                title: '操作',
                align: 'center',
                valign: 'middle',
                formatter: actionFormatter,    // 自定义方法,添加按钮组
            }];
            function actionFormatter(value, row, index) {
                var result = "";
                      result += "<a href='javascript:;' class='btn btn-xs blue' onclick=\"EditRole('" + value + "')\" title='分配角色'><span class='glyphicon  glyphicon-wrench'></span></a>";
                     result += "<a href='javascript:;' class='btn btn-xs blue' onclick=\"Edit('" + value + "')\" title='编辑'><span class='glyphicon glyphicon-pencil'></span></a>";
                      result += "<a href='javascript:;' class='btn btn-xs red' onclick=\"Delete('" + value + "')\" title='删除'><span class='glyphicon glyphicon-remove'></span></a>";
                return result;
            }
            var option = {
                url: "/User/GetUserPage",
                uniqueId: "Id",
                pageSize: 10,
                columns: columns
            }
            var oTable = new TableInit($("#maptable"), $(".search-form"), option);
            oTable.Init();
            $("#search_link").click(function () {
                oTable.Search();
            })

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值