你可能会用到的Bootstarp 库

1. 表格

Bootstrap Table

  • 支持 Bootstrap 3 和 Bootstrap 2
  • 自适应界面
  • 固定表头
  • 非常丰富的配置参数
  • 直接通过标签使用
  • 显示/隐藏列
  • 显示/隐藏表头
  • 通过 AJAX 获取 JSON 格式的数据
  • 支持排序
  • 格式化表格
  • 支持单选或者多选
  • 强大的分页功能
  • 支持卡片视图
  • 支持多语言
  • 支持插件

例子:

$(function() {
var t = $("#table_server")
    .bootstrapTable(
    {
        url : WWWROOT
                + '/disinfectSystem/signRecordAction!getSignRecordTodayGrid.do?time='
                + new Date(),
        method : 'get',
        dataType : "json",
        showRefresh : "true",// 刷新按钮
        dataField : "data",// 这是返回的json数组的key.默认好像是"rows".这里只有前后端约定好就行
        striped : true,// 设置为 true 会有隔行变色效果
        undefinedText : "空",// 当数据为 undefined 时显示的字符
        pagination : true, // 分页
        // paginationLoop:true,//设置为 true 启用分页条无限循环的功能。
        showColumns : "true",// 是否显示 内容列下拉框
        pageNumber : 1,// 如果设置了分页,首页页码
        // showPaginationSwitch:true,//是否显示 数据条数选择框
        pageSize : 10,// 如果设置了分页,页面数据条数
        pageList : [ 10, 30, 50 ], // 如果设置了分页,设置可供选择的页面数据条数。设置为All
                                        // 则显示所有记录。
        paginationPreText : '‹',// 指定分页条中上一页按钮的图标或文字,这里是<
        paginationNextText : '›',// 指定分页条中下一页按钮的图标或文字,这里是>
        // singleSelect: false,//设置True 将禁止多选
        search : true, // 显示搜索框
        data_local : "zh-US",// 表格汉化
        sidePagination : "server", // 服务端处理分页
        responseHandler : responseHandler,
        queryParams : function(params) {// 自定义参数
            return {// 这里的params是table提供的
                start : params.offset, // 从数据库第几条记录开始
                limit : params.limit, // 找多少条
                keyword : params.search
            };
        },
        idField : "id",// 指定主键列
        columns : [
                {
                    title : 'id',// 表的列名
                    field : 'id',// json数据中rows数组中的属性名
                    align : 'center'// 水平居中
                },
                {
                    title : '签收人',
                    field : 'signUserName',
                    align : 'center'
                },
                {
                    title : '签收包数量',
                    field : 'signAmount',
                    align : 'center'
                },
                {
                    title : '生成记录时间',
                    field : 'signDate',
                    align : 'center'
                },
                {
                    title : '操作',
                    field : 'id',
                    align : 'center',
                    formatter : function(value, row, index) {// 自定义显示标签
                        return '<button type="button" onclick="printSignRecord(this,\''
                        + row.id
                        + '\')" class="btn btn-primary">打印</button>' 
                        + '<button type="button" onclick="changeTable(\''
                                + row.id
                                + '\')" class="btn btn-info btn-arrow-right">查看详情</button> ';
                    }
                }

                ]
            });
    t.on('load-success.bs.table', function(data) {// table加载成功后的监听函数
        $(".pull-right").css("display", "block");
        $('#table_server').bootstrapTable('hideColumn', 'id');// 隐藏ID
    });

    // 请求成功方法
    function responseHandler(result) {
        /*
         * var errcode = result.errcode;//在此做了错误代码的判断 if(errcode != 0){
         * alert("错误代码" + errcode); return; }
         */
        // 如果没有错误则返回数据,渲染表格
        return {
            total : result.totalCount, // 总页数,前面的key必须为"total"
            data : result.data  // 行数据,前面的key要与之前设置的dataField的值一致.
        
        };
    }
    ;
});

2. 悬停显示

bootstrap popover ->文档

  • 在需要显示的元素上加上data-toggle="popover"
<tr data-toggle="popover">
    ...
</tr>
  • js渲染
            $('[data-toggle="popover"]').each(function() {
                var element = $(this);
                var id = element.attr('id');
                var txt = element.html();
                element.popover({
                    trigger: 'manual',
                    placement: 'bottom', //top, bottom, left or right
                    title: txt,
                    html: 'true',
                    content: ContentMethod(txt),
                }).on("mouseenter", function() {
                    var _this = this;
                    $(this).popover("show");
                    $(this).siblings(".popover").on("mouseleave", function() {
                        $(_this).popover('hide');
                    });
                }).on("mouseleave", function() {
                    var _this = this;
                    setTimeout(function() {
                        if(!$(".popover:hover").length) {
                            $(_this).popover("hide")
                        }
                    }, 100);
                });
            });
        
  • 自定义内容
        function ContentMethod(txt) {
            return '<div class="alert alert-success"><strong></strong>自定义任何内容</div>'
        }

3. 下拉框组件

Bootstrap selectpicker ->文档

  • 多选
  • 搜索
  • 分组选中
  • 自定义样式
  • 可配置option图标加文字
  • 带颜色的标签
  • 全选和反选
  • image
  • image
  • image

4. 使表格元素可编辑

  • 引入额外的js文件
<link rel="stylesheet" href="//rawgit.com/vitalets/x-editable/master/dist/bootstrap3-editable/css/bootstrap-editable.css">
<script src="//rawgit.com/vitalets/x-editable/master/dist/bootstrap3-editable/js/bootstrap-editable.js"></script>
<script src="~/Content/bootstrap-table/extensions/editable/bootstrap-table-editable.js"></script>
  • 在cshtml页面定义表格时,添加两个属性
<table id="tb_departments">
        <thead>
            <tr>
                <th data-field="Name" data-editable="true">部门名称</th>
                <th data-field="ParentName">上级部门</th>
                <th data-field="Level" data-editable="true">部门级别</th>
                <th data-field="Desc" data-editable="true">描述</th>
            </tr>
        </thead>
    </table>
  • 如果是在js里面初始化,写法如下
{
         field: "name",
         title: "名称",
         editable:true
}
  • 在js里渲染表格的时候,加上:
onEditableSave: function (field, row, oldValue, $el) {
                $.ajax({
                    type: "post",
                    url: "/Editable/Edit",
                    data: { strJson: JSON.stringify(row) },
                    success: function (data, status) {
                        if (status == "success") {
                            alert("编辑成功");
                        }
                    },
                    error: function () {
                        alert("Error");
                    },
                    complete: function () {

                    }

                });
            }
  • 最终效果如下
image

5. 模态框 -(阻塞型)

<h2>创建模态框(Modal)</h2>
<!-- 按钮触发模态框 -->
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">开始演示模态框</button>
<!-- 模态框(Modal) -->.
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                <h4 class="modal-title" id="myModalLabel">模态框(Modal)标题</h4>
            </div>
            <div class="modal-body">在这里添加一些文本</div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
                <button type="button" class="btn btn-primary">提交更改</button>
            </div>
        </div><!-- /.modal-content -->
    </div><!-- /.modal -->
</div>
  • 效果图:
image
至于非阻塞的提示框,Bootstarp里是没有的,这里列出几种供参考:
  • overhang.js
  • notyf.js

6 按钮 Bootstarp Button ->文档点这里

这个是额外引入的库,比原生的好用

  • 多种形状和尺寸的按钮样式可供选择
  • 带边框和不带边框的按钮
  • 3D 按钮
  • 突起样式的按钮
  • 光晕效果
  • 带下拉菜单的按钮

引入

<!-- Buttons 库的核心文件 -->
<link rel="stylesheet" href="css/buttons.css">

<!-- 当需要使用带下拉菜单的按钮时才需要加载下面的 JavaScript 文件 -->
<script src="http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script>

<script type="text/javascript" src="js/buttons.js"></script>

<!-- 只有使用字体图标时才需要加载 Font-Awesome -->
<link href="http://cdn.bootcss.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet">

效果图

image
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,902评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,037评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,978评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,867评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,763评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,104评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,565评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,236评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,379评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,313评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,363评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,034评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,637评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,719评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,952评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,371评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,948评论 2 341