bootstrap-table填坑之旅

应公司需求,改版公司ERP的数据显示样式。由于前期开发的样式是bootstrap,所以选bootstrap-table理所当然(也是因为看了bootstrap-table官网的example功能强大,样式清爽)。

然后... ... 开启bootstrap-table填坑之旅。

开始就扒本园的资源,确实有不少bootstrap-table的文章。确实写的不错很详细,请恕本菜实在菜了点,看了半天demo的页面都没弄出来(勿吐槽~~)。终于11点了.. .. 于是决定跟着官网的小白教程一点点的玩。

ready... ..

one. 怎么把table挂出来

HTML代码:(只用看一个tr就够了,写三行只为看demo效果)

    <table data-toggle="table" id="goods">
        <thead>
            <tr>
                <th data-field="Code">序号</th>
                <th data-field="TuanGouName">商品名称</th>
                <th data-field="StartDate">开始时间</th>
                <th data-field="EndTime">结束时间</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>1</td>
                <td>九洲奇味饼干</td>
                <td>2016/10/9 10:15:00</td>
                <td>2016/12/25 11:30:00<td>
            </tr>
            <tr>
                <td>2</td>
                <td>好多鱼</td>
                <td>2016/10/9 10:15:00</td>
                <td>2016/12/25 11:30:00<td>
            </tr>
            <tr>
                <td>3</td>
                <td>旺旺雪饼</td>
                <td>2016/10/9 10:15:00</td>
                <td>2016/12/25 11:30:00<td>
            </tr>
         </tbody>
    </table>

终于把table挂出来了,这里其实就和原来的table一样写就行了。

tow. 加载json数据

HTML代码:

    <table id="goods">
        <thead>
            <tr>
                <th data-field="Code">序号</th>
                <th data-field="TuanGouName">商品名称</th>
                <th data-field="StartDate">开始时间</th>
                <th data-field="EndTime">结束时间</th>
            </tr>
        </thead>
    </table>

js代码:

        /*数据json*/
        var json =  [{"Code":"1","TuanGouName":"好多鱼","StartDate":"2016/10/9 10:15:00","EndTime":"2016/12/25 11:30:00"},
                        {"Code":"2","TuanGouName":"旺旺雪饼","StartDate":"2016/10/9 10:15:00","EndTime":"2016/12/25 11:30:00"},
                        {"Code":"3","TuanGouName":"旺旺仙贝","StartDate":"2016/10/9 10:15:00","EndTime":"2016/12/25 11:30:00"},
                        {"Code":"4","TuanGouName":"雪花清爽","StartDate":"2016/10/9 10:15:00","EndTime":"2016/12/25 11:30:00"},
                        {"Code":"5","TuanGouName":"勇闯天涯","StartDate":"2016/10/9 10:15:00","EndTime":"2016/12/25 11:30:00"},
                        {"Code":"6","TuanGouName":"九洲奇味饼干","StartDate":"2016/10/9 10:15:00","EndTime":"2016/12/25 11:30:00"}];
        /*初始化table数据*/
        $(function(){
            $("#goods").bootstrapTable({
                data:json
            });
        });

成功获取json数据并加载成功。

这里注意:用json加载数据 table 标签不能写 data-toggle="table" 属性,至于原因后面再解释。总之这里不能写,写了就会出这样的bug。

three. 装饰table

HTML代码

<table data-toggle="table"
       data-row-style="rowStyle">
    <thead>
    <tr>
        <th class="col-xs-4" data-field="name">Name</th>
        <th class="col-xs-1" data-field="stargazers_count">Stars</th>
        <th class="col-xs-1" data-field="forks_count">Forks</th>
        <th class="col-xs-6" data-field="description">Description</th>
    </tr>
    </thead>
    <!--此处忽略数据-->
</table>

js代码

function cellStyle(value, row, index) {
    var classes = [‘active‘, ‘success‘, ‘info‘, ‘warning‘, ‘danger‘];
    if (index % 2 === 0) {
        return { classes: ‘success‘ };
    }
    return {};
}

data-striped属性true表格为隔行变色(斑马纹),false不使用隔行变色。

data-row-style属性接收js函数(必须有返回值),可设置row属性。

th每列可添加栅格样式。

在th可设置data-cell-style属性,同样接收js函数(必须有返回值),设置该列单元格样式。

HTML代码

<table data-toggle="table" >
    <thead>
    <tr>
        <th data-field="name" data-halign="right" data-align="center">Name</th>
        <th data-field="stargazers_count" data-halign="center" data-align="left">Stars</th>
        <th data-field="forks_count" data-halign="left" data-align="right">Forks</th>
    </tr>
    </thead>
</table>

data-halign设置该列标题对齐,data-align设置该列单元格对齐。

four. table排序

HTML代码

    <table id="goods" data-sort-order="desc">
        <thead>
            <tr>
                <th data-sortable="true" data-field="Code">序号</th>
                <th data-sortable="true" data-field="TuanGouName">商品名称</th>
                <th data-field="StartDate">开始时间</th>
                <th data-field="EndTime">结束时间</th>
            </tr>
        </thead>
    </table>

data-sortable属性默认为false,设置为true,按默认排序方式对该列内容排序。

data-sort-name="stargazers_count" 和 data-sort-order="asc"这俩属性找了半天没找到准确的解释,从字面意思理解应该是默认的排序函数名和排序方式,总之带上总没错。

five. 单元格 格式化

HTML代码

    <table id="goods" data-sort-name="stargazers_count"
       data-sort-order="asc">
        <thead>
            <tr>
                <th data-sortable="true" data-formatter="getIndex">下标</th>
                <th data-sortable="true" data-field="Code" data-formatter="setCode">序号</th>
                <th data-sortable="true" data-field="TuanGouName" data-formatter="setName">商品名称</th>
                <th data-sortable="true" data-field="name">名称</th>
                <th data-field="EndTime">结束时间</th>
            </tr>
        </thead>
    </table>

js代码

        function getIndex(val,row,index){
            return index + 1;
        }
        function setCode(val){
            return "<a href=‘#‘>" + val + "</a>";
        }
        function setName(val){
            return "<span style=‘color:red;font-weight:900;‘>" + val + "</span>";
        }

data-formatter属性可以格式化该列单元格,data-formatter接收js函数(必须有返回值)该函数可以获取当前行的下标(注意:获取下标参数必须有row,否则index值为undefined),函数还可以改变单元格元素显示方式,例如:a button .. ...

six. 显示隐藏列

HTML代码

    <table id="goods" data-sort-name="stargazers_count" data-show-columns="true"
       data-sort-order="asc">
        <thead>
            <tr>
                <th data-sortable="true" data-field="Code" >序号</th>
                <th data-sortable="true" data-field="TuanGouName" data-switchable="false">商品名称</th>
                <th data-sortable="true" data-field="name">名称</th>
                <th data-sortable="true" data-field="EndTime" data-visible="false">结束时间</th>
            </tr>
        </thead>
    </table>

data-show-columns属性为“true”可设置隐藏显示某列,对应列data-switchable属性设置为“false”该列不可隐藏,默认值为true;data-visible属性设置为“false”该列默认被隐藏,默认值为true。

seven. 选择列 checkbox

HTML代码

    <table id="goods" data-sort-name="stargazers_count" data-show-columns="true"
           data-sort-order="asc">
        <thead>
            <tr>
                <th data-field="state" data-checkbox="true"></th>
                <th data-sortable="true" data-field="Code" >序号</th>
                <th data-sortable="true" data-field="TuanGouName" data-switchable="false">商品名称</th>
                <th data-sortable="true" data-field="name">名称</th>
                <th data-sortable="true" data-field="EndTime" data-visible="false">结束时间</th>
            </tr>
        </thead>
    </table>

<th data-field="state" data-checkbox="true"></th>这一列是checkbox选择列。据测试,data-click-to-select属性的值与选择列关系不大,有木有或者值true false都不影响checkbox列的显示和使用。

设置data-single-select="true",checkbox就只能选择一行。

    <table id="goods" data-sort-name="stargazers_count" data-show-columns="true"
           data-sort-order="asc" data-click-to-select="true" data-single-select="true">
        <thead>
            <tr>
                <th data-field="state" data-checkbox="true">选择</th>
                <th data-sortable="true" data-field="Code" >序号</th>
                <th data-sortable="true" data-field="TuanGouName" data-switchable="false">商品名称</th>
                <th data-sortable="true" data-field="name">名称</th>
                <th data-sortable="true" data-field="EndTime" data-visible="false">结束时间</th>
            </tr>
        </thead>
    </table>

通过js指定行被选中,指定行不可操作。

function stateFormatter(value, row, index) {
    if (index === 2) {
        return {
            disabled: true
        };
    }
    if (index === 0) {
        return {
            disabled: true,
            checked: true
        }
    }
    return value;
}

给checkbox设置data-formatter属性,通过disabled checked控制checkbox是否可用和是否被选中。

eight. card-view 卡片视图

HTML代码

<table data-toggle="table"
       data-card-view="true">
    <thead>
    <tr>
        <th data-field="name">Name</th>
        <th data-field="stargazers_count">Stars</th>
        <th data-field="forks_count">Forks</th>
        <th data-field="description">Description</th>
    </tr>
    </thead>
</table>

data-card-view改变table视图方式,true:卡片视图,false:表格视图。

待续 待续

时间: 2024-08-02 13:43:23

bootstrap-table填坑之旅的相关文章

13、最新安卓Xamarin绑定相关填坑之旅

今天群里面有兄弟伙说第三方库用不起.说实话在我觉得第三方库能成功的几率大于90% 除了极少数恶心的库以外. 绝大部分第三方库都还是可以绑定好的 https://github.com/youzan/YouzanMobileSDK-Android 这个是官方的也有对应的demo 首先遇到绑定库 我会第一时间nuget查询下 虽然这种库很少有人会用.但是万一有人绑定了呢? 然后 我会在github搜索下有木有好心的人绑定了 这2个方法后都没得人绑定 好吧 那就我自己开撸 首先安卓的绑定绝对比ios绑定

[原创]CentOS7编译安装OpenResty1.15.8.2(填坑之旅)

原创文章,转载请注明出处:https://blog.51cto.com/indian/2445786 一.安装前置环境 1.编译工具安装 yum install -y epel-release yum install -y gcc gcc-c++ curl 2.调整系统时区 date timedatectl sudo timedatectl set-timezone Asia/Shanghai sudo dnf install -y chrony 3.其它自己需要的工具 yum install

RMI的填坑之旅

前几天对一个业务系统做了一下RMI的集成, 一切都挺顺利, 本地测试通过, 但是今天该业务系统部署到服务器上却出现了连接不上的情况. Connection refuse !!! 认真一看, 发给A服务器的调用却最后发给了B服务器. Debug了好久就是lookup()的方法直接返回了B服务器地址, 当时就一直考虑A服务器是不是有内部转发给B, Linux 下tcpdump tcp port 1099(RMI端口)  看了, Windows 下pathping ip也看了, 就是没看到跳转到B服务

IOS-开发小记 填坑之旅

很多知识点,并不难.只是,根本不知道这个概念,每次都要探坑后,才会知道有这个东西. ld: symbol(s) not found for architecture x86_64 在.o 文件 中 找不到定义. oc编译是先编译出.o文件,再链接. 如果在.h 声明,在.m没有实现,便会找不到符号(symbol).不用就没关系. restoration identifier 和 reuse identifier 不一样. restoration identifier 是恢复用的. reuseId

Node学习笔记(四):gulp+express+io.socket部署angularJs2(填坑篇)

这篇就先暂停下上篇博客--你画我猜的进度,因为在做这个游戏的时候,想采用最新的ng2技术,奈何坑是一片又一片,这边就先介绍下环境部署和填坑史 既然要用ng2,首先要拿到资源,我这边用的是angularJs2 beta版的,网上的资源有两种,一个是文件全压缩版的.min.js版的另一个就是一大堆乱七八糟的js文件,主要是ng2已经完全采用TypeScript,加之对es6的支持,所以需要引入一大堆兼容,编译文件 这边刚好特别手欠想学学gulp,于是开搞配置gulp环境,压缩所有的js文件成一个mi

初涉node.js做微信测试公众号一路填坑顺便发现个有趣的其他漏洞

[微信测试公众号] 半年前耍着玩搭起来的“微信简历”,是LAMP版的,很皮毛. 微信的官方文档在这 http://mp.weixin.qq.com/wiki/index.php 1.获取access token 2.自定义菜单创建,直接在调试工具上做了 http://mp.weixin.qq.com/debug 3.接入指南(接入自己的网站) 4.接收微信消息,判断消息类型,判断消息关键字(比如来自哪个按钮),响应消息 这里有个小坑,不同类型的消息数据结构略有不同,判空最好做细致点. [V2.0

webpack入坑之旅(六)配合vue-router实现SPA

这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack,在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不是开始的开始 webpack入坑之旅(二)loader入门 webpack入坑之旅(三)webpack.config入门 webpack入坑之旅(四)扬帆起航 webpack入坑之旅(五)加载vue单文件组件 webpack入坑之旅(六)配合vue-router实现SPA 在上面的练习当中我们已经成

Zabbix 踩坑之旅——zabbix触发重启tomcat

一.实验需求 公司tomcat服务经常自动崩溃,导致业务中断,暂时用zabbix对其执行监控,在tomcat崩溃时能够先自动启动,保证业务尽快恢复正常. 二.准备环境 系统环境:CentOS 6.5 IP地址: zabbix-server: 192.168.239.128 zabbix-agent: 192.168.239.130 zabbix的服务端和客户端的安装此处都以rpm包安装,配置略过.agent端上安装好tomcat. 三.开启踩坑之旅--agent端 ① 修改zabbix-agen

一名Android开发者的微信小程序填坑之路(2)

前言 上一篇是九月二十七日写的,而这一篇我动笔的时间是十月十日(特殊的日子),中间相隔十三天--当然是因为国庆节.说老实话,这十三天里面我都没有碰和小程序有关的东西--毕竟学习小程序的开发也只是起于兴趣,而平时的工作并不会涉及与其相关的东西--但是在这十三天里,我能明显的感受到小程序热正在逐渐的消退,或者说大家正在逐渐以一种较为平和的姿态接受它的存在,其实这是一件好事.期待公测的到来. 接下来我就直接进入正题了,另外,文末我想和大家分享一下我的国庆节. PS:这篇文章是接着上一篇文章 一名And