zoukankan      html  css  js  c++  java
  • Bootstrap Table 的用法

    记录下 Bootstrap Table 的用法,备忘。

     

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <title>WebDemo</title>
    
        <!--1. Jquery组件引用-->
        <script type="text/javascript" src="../Content/jquery/jquery-3.3.1.min.js"></script>
    
        <!--2. bootstrap组件引用 -->
        <script type="text/javascript" src="../Content/bootstrap/bootstrap.js"></script>
        <link rel="stylesheet" href="../Content/bootstrap/bootstrap.css" />
    
        <!--3. bootstrap table组件以及中文包的引用-->
        <link rel="stylesheet" href="../Content/bootstrap/bootstrap-table.css">
        <script type="text/javascript" src="../Content/bootstrap/bootstrap-table.js"></script>
        <script type="text/javascript" src="../Content/bootstrap/bootstrap-table-zh-CN.js"></script>
    
        <!--4. layer组件的引用-->
        <script type="text/javascript" src="../Content/layer/layer.js"></script>
    
        <style type="text/css">
            /*bootstrap-table选中行颜色*/
            .table tbody .selected td {
                background-color: #EEE8AA;
            }
            /*表头颜色*/
            /*thead
            {
                background-color: #333333;
                color: #fdfdfd;
            }*/
            /*隔行变色*/
            /*table tbody tr:nth-child(even)
            {
                background-color: #b6ff00;
            }*/
    
            /*表头固定   todo*/
        </style>
    </head>
    <body>
        <div class="panel-body">
            <div id="toolbar">
                <div class="btn-group" style="float:left">
                    <button id="btn_add" type="button" class="btn btn-default">
                        <span class="glyphicon glyphicon-plus" aria-hidden="true"></span> 新增
                    </button>
                    <button id="btn_edit" type="button" class="btn btn-default">
                        <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> 修改
                    </button>
                    <button id="btn_delete" type="button" class="btn btn-default">
                        <span class="glyphicon glyphicon-trash" aria-hidden="true"></span> 删除
                    </button>
                </div>
                <!--https://blog.csdn.net/yaomingyang/article/details/80346678-->
                <form class="form-inline" style="float:left;margin-left:5px">
                    <div class="form-group">
                        <div class="input-group">
                            <div class="input-group-addon">院系</div>
                            <input type="text" class="form-control" name="searchTexts" id="txt_search_department" placeholder="请输入关键字...">
                        </div>
                    </div>
                    <button id="btn_search" type="button" class="btn btn-default">
                        <span class="glyphicon glyphicon-search" aria-hidden="true"></span> 查询
                    </button>
                </form>
            </div>
    
            <div class="table-responsive">
                <!--自适应水平滚动条-->
                <table id="table"> </table>
            </div>
        </div>
        <script type="text/javascript">
            window.onload = function () {
                getStudentQueryByPage();
                $("#btn_search").click(function () {
                    getStudentQueryByPage();
                })
            }
            function getStudentQueryByPage() {
                $('#table').bootstrapTable('destroy');
                $('#table').bootstrapTable({
                    method: 'post', //请求方式
                    contentType: "application/x-www-form-urlencoded",
                    url: "../Controllers/IndexController.ashx?action=getStudentQueryByPage",       //要请求数据的文件路径
                    // height: return $(window).height(),                 //高度调整
                    // searchTimeOut: '5000',
                    // showHeader:true,
                    striped: true,                                        //是否显示行间隔色
                    pageNumber: 1,                                        //初始化加载第一页,默认第一页
                    pagination: true,                                     //是否分页
                    sidePagination: 'server',                             //指定服务器端分页
                    pageSize: 2,                                         //单页记录数
                    pageList: [2, 5, 10],                               //分页步进值 [10, 20, 50]
                    showColumns: true,                                    //是否显示所有的列
                    minimumCountColumns: 2,                               //最少允许的列数
                    clickToSelect: true,                                  //是否启用点击选中行
                    sortable: 'true',                                     //是否启用排序
                    sortName: 'id',
                    sortOrder: 'desc',                                    //排序方式
                    toolbar: '#toolbar',                                  //工具按钮用哪个容器
                    cache: true,                                          //是否使用缓存,默认是true
                    //search: true,                                         //搜索框
                    //searchOnEnterKey: true,                               //按回车触发搜索方法
                    showRefresh: true,                                    //刷新按钮
    
                    showToggle: true,                                     //详细视图和列表视图的切换按钮
    
                    //cardView:false,
                    //fixedColumns: true,
                    //fixedNumber:1,                                        //固定列数
                    queryParamsType: 'undefined',                         //查询参数组织方式
                    queryParams: queryParams,                           //请求服务器时所传的参数
                    responseHandler: function (res) {
                        return res;
                    },
                    //单机和双击触发的事件,当双击就会获取row,row就是该整行的内容,其中"row.RealName"中"RealName"是data-field定义的字段.
                    onDblClickRow: function (row, $element, field) {
                        layer.msg("选中行用户的真实姓名:" + row.name);
                    },
                    onClickRow: function (row, $element, field) {
                        //var i = $element.data("index");//可通过此参数获取当前行号
                        //layer.msg(i + "," + row.name + "," + field);
    
                        var r = row[field];  //获取当前选中单元格内容
                        //判断当前单元格是否为空
                        if (r.length != 0) {
                            layer.msg(r); 
                        }
                    },
                    //获取选中行的数据
                    //onCheck: function (row) {
                    //    layer.msg("您选中的行的姓名为" + row.name + ",您选中的行的院系为" + row.department);
                    //},
                    singleSelect: true,                                    //单选checkbox,只能选中一行
                    columns: [
                        {
                            checkbox: true
                        },
                        {
                            title: '编号',
                            align: 'center',//居中
                            //valign: 'bottom',
                             //手动实现编号 或者通过row_number实现服务器编号
                            formatter: function (value, row, index) {
                                var pageNumber = $('#table').bootstrapTable("getOptions").pageNumber;
                                var pageSize = $('#table').bootstrapTable("getOptions").pageSize;
                                return pageSize * (pageNumber - 1) + index + 1;
                            }
                        },
                        {
                            field: 'id',
                            title: '学号',
                            align: 'center',
                            sortable: true
                        },
                        {
                            field: 'name',
                            title: '姓名',
                            sortable: true,
                            align: 'center',
                            formatter: function (value, row, index) {
                                return "<span style='color:#FF0000'>" + value + "</span>";
                                //return "<img onclick="FindPersonMeg('" + proCode + "','" + projectName + "')" title='点击查看责任人信息' src='/Themes/Images/16/application_form_magnify.png' style='vertical-align: middle;cursor: pointer;' alt='' />";
                                //return "<span style='color:#FF0000' onclick='TestLayer()'>" + value + "</span>";
                            }
                        },
                        {
                            field: 'sex',
                            title: '性别',
                            align: 'center',
                            sortable: true
                        },
                        {
                            field: 'birth',
                            title: '出生日期',
                            align: 'center',
                            sortable: true
                        },
                        {
                            field: 'department',
                            title: '院系',
                            align: 'center',
                            sortable: true
                        },
                        {
                            field: 'address',
                            title: '家庭地址',
                            align: 'center'
                        },
                        {
    
                            title: '详细信息',
                            align: 'center',//居中
                            formatter: function (value, row, index) {
                                // "<img  title='点击查看详细信息' src='Content/favicon.ico' style='vertical-align: middle;cursor: pointer;' alt='' />";
    
    
                                var detail = "<button type="button" onclick="detailMsg('" + row.id + "','"+row.name+"')" >"
                                    + "<span class="glyphicon glyphicon-search">查看详细信息</span> </button>";
                                return detail;
                            }
                        }
                    ]
                });
            }
    
            function queryParams(params) {
                //方式一
                //params.project = $("#project").val();
                //params.start = $("#start").val();
                //params.end = $("#end").val();
                //params.alarmType = $("#alarm-type").val();
                params.txt_search_department = $("#txt_search_department").val();
                return params;
    
                //方式二
                //return {
                //    pageSize: params.limit,
                //    pageNumber: params.pageNumber
                //}
            }
    
            // 获取选中行的数据
            $("#btn_edit").click(function (e) {
    
                //var allTableData = $('#table').bootstrapTable('getData');//获取表格的所有内容行
    
                var getSelectionsRows = $('#table').bootstrapTable("getSelections"); //获取suoyou选中行的内容
                var name = getSelectionsRows[0].name;
                var sex = getSelectionsRows[0].sex;
                var birth = getSelectionsRows[0].birth;
                var department = getSelectionsRows[0].department;
                var address = getSelectionsRows[0].address;
    
                if (getSelectionsRows.length == 1) {
                    //layer.open({
                    //    type: 2,            // iframe层
                    //    title: '编辑',
                    //    shadeClose: true,
                    //    shade: 0.8,
                    //    area: ['800px', '600px'],
                    //    content: ['./Test3Form.aspx?Account=' + escape(Account) + "&RealName=" + escape(RealName)
                    //        + "&Gender=" + escape(Gender) + "&Mobile=" + escape(Mobile) + "&Email=" + escape(Email)
                    //        + "&LastVisit=" + escape(LastVisit) + "&CreateDate=" + escape(CreateDate), 'no']
                    //});
    
                    alert("姓名:" + name + ", 性别:" + sex + ", 院系:" + department);
                } else {
                    alert("请只选中一行!!!");
                }
            });
    
            //获取详细信息
            function detailMsg(id,name) {
                //var id = document.getElementById("id").value;
                //var url = "/Controllers/IndexController.ashx"
                //var data = "action=getDetail&name=" + name + "&id=" + id;
                //$.ajax({
                //    type: "get",
                //    url: url,
                //    data: data,
                //    dataType: "text",
                //    success: function (msg) {
                //        //return msg;
                //        alert("姓名:" + msg);
                //    },
                //    error: function () {
                //        Console.log("请求失败" + data);
                //    },
                //    //beforSend: function () {
                //    //    // 禁用按钮防止重复提交
                //    //    $("#submit").attr({ disabled: "disabled" });
                //    //}
                //});
                alert(name);
            }
        </script>
    </body>
    </html>

    如果初始化的参数 sidePagination: "server" 设置为在服务端分页,那么我们的返回值必须告诉前端总记录的条数和当前页的记录数,然后前端才知道如何分页。并且最重要的一点,这两个参数的名字必须为total和rows。

  • 相关阅读:
    你能用多长时间停车?
    中国威胁论好像还挺严重的
    热爱生命
    lunix下shell脚本批量获取文件,批量修改文件内容
    sql数据操作的若干心得(二)向表中自动插入自增的ID
    Asp.net开发之旅动态产生控件
    Asp.net开发之旅GridView中嵌入DropDownList的一点心得
    Asp.net开发之旅开发环境
    Asp.net开发之旅简单的引用母版页
    Sql数据操作的若干心得
  • 原文地址:https://www.cnblogs.com/wsq-blog/p/10281851.html
Copyright © 2011-2022 走看看