bootstrap-table formatter 使用vue组件的方法


Posted in Javascript onMay 09, 2019

bootstrap-table简介

1.1、bootstrap table简介及特征:

         Bootstrap table是国人开发的一款基于 Bootstrap 的 jQuery 表格插件,通过简单的设置,就可以拥有强大的单选、多选、排序、分页,以及编辑、导出、过滤(扩展)等等的功能。目前在github上已经有2600多个Star,可见其受欢迎程度。其官方网站地址 为:http://bootstrap-table.wenzhixin.net.cn/。里面可以下载使用所需的JS和CSS文件,以及参考文档和例子。

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

下面通过实例代码给大家介绍bootstrap-table formatter 使用vue组件的方法,具体代码如下所示:

import { Subject } from "rxjs";
import Vue from "vue";
export const BtEventHub = new Subject();
const VueComList = [];
let VueComId = 0;
BtEventHub.debounceTime(10)
 .filter(() => VueComList.length > 0)
 .delay(10)
 .subscribe(function() {
  const len = VueComList.length - 1;
  for (let i = len; i >= 0; i--) {
   const item = VueComList[i];
   const dom = document.getElementById(item.name);
   if (dom != null) {
    new Vue(item);
    VueComList.splice(i, 1);
   }
  }
  if (VueComList.length === 0) {
   VueComId = 0;
  }
 });
export function BtAddVueCom(obj: object) {
 const id = `_vue_com_${VueComId++}`;
 VueComList.push({
  el: "#" + id,
  name: id,
  ...obj
 });
 setTimeout(() => {
  BtEventHub.next();
 }, 0);
 return id;
}
window["BtAddVueCom"] = BtAddVueCom;
function ColFormatter1(value, row) {
 const id = window.BtAddVueCom({
  template: '<el-switch v-model="row.IsShow"></el-switch>',
  data: function () {
   return {
    row
   }
  }
 });
 return `<div id="${id}"></div>`;
}

ps:Vue 结合bootstrap table插件使用

bootstrap Table插件可以很方便的搜索排序,方便快捷,下面是结合vue的完整的例子。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Vue Bootstrap Table Demo</title>
  <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
  <link rel="stylesheet" href="../bootstrap/css/bootstrap.min.css" rel="external nofollow" >
  <link rel="stylesheet" href="../plugins/bootstrap-table-develop/src/bootstrap-table.css" rel="external nofollow" >
</head>
<body class="">
  <div>
    <table class="table table-bordered table-striped" id="tableTest1">
    </table>
  </div>
  <script src="../jQuery/jQuery-2.1.4.min.js"></script>
  <script src="../dist/vue.js"></script>
  <script src="../plugins/bootstrap-table-develop/src/bootstrap-table.js"></script>
  <script src="../plugins/bootstrap-table-develop/src/locale/bootstrap-table-zh-CN.js"></script>
  <script>
  var app7 = new Vue({
    el: '#tableTest1',
    data: {
      //message: [],
      message: [],
      columns: [{
          title: 'Id',
          field: 'id'
        },
        {
          field: 'name',
          title: 'Item Name'
        }, {
          field: 'url',
          title: 'url'
        }, {
          field: 'alex',
          title: 'alex'
        }, {
          field: 'country',
          title: 'country'
        }
      ],
    },
    created() {
      //console.log(this.message)
      this.getData();
      this.intervalGetData();
      //console.log(this.message)
    },
    methods: {
      intervalGetData() {
        setInterval(() => {
          //   $.get("selectBtTable.php?action=init_data_list", data => {
          //   var data = JSON.parse(data);
          //   this.message = data;
          //   $('#tableTest1').bootstrapTable('load', this.message);
          //   //console.log(JSON.parse(data))
          //   console.log("get data")
          // })
          this.getData();
        }, 3000)
      },
      getData() {
        //es6 箭头函数的写法
        //  $.get("selectBtTable.php?action=init_data_list", data => {
        //   var data = JSON.parse(data);
        //   this.message = data;
        //   $('#tableTest1').bootstrapTable('load', this.message);
        //   console.log("init data")
        // })
        var that = this;
        $.get("selectBtTable.php?action=init_data_list", function(data) {
          var data = JSON.parse(data);
          that.message = data;
          $('#tableTest1').bootstrapTable('load', that.message);
          console.log("init data")
        })
      }
    },
    mounted() {
      console.log(this.message + "mounted")
      $('#tableTest1').bootstrapTable({ columns: this.columns, height: 500, search: true });
    }
  })
  </script>
</body>
</html>

     (adsbygoogle = window.adsbygoogle || []).push({}); 

总结

以上所述是小编给大家介绍的bootstrap-table formatter 使用vue组件的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
javascript遍历控件实例详细解析
Jan 10 Javascript
JavaScript实现鼠标点击后层展开效果的方法
May 13 Javascript
JavaScript实现打开链接页面的方式汇总
Jun 02 Javascript
JS实现的简单图片切换功能示例【测试可用】
Feb 14 Javascript
vue-router实现webApp切换页面动画效果代码
May 25 Javascript
w3c编程挑战_初级脚本算法实战篇
Jun 23 Javascript
使用InstantClick.js让页面提前加载200ms
Sep 12 Javascript
一文让你彻底搞清楚javascript中的require、import与export
Sep 24 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
Oct 24 Javascript
ES6学习笔记之map、set与数组、对象的对比
Mar 01 Javascript
Angular中innerHTML标签的样式不起作用的原因解析
Jun 18 Javascript
layui添加动态菜单与选项卡
Jul 26 Javascript
详解es6新增数组方法简便了哪些操作
May 09 #Javascript
Vue函数式组件-你值得拥有
May 09 #Javascript
12个提高JavaScript技能的概念(小结)
May 09 #Javascript
Vue 处理表单input单行文本框的实例代码
May 09 #Javascript
使用vuex解决刷新页面state数据消失的问题记录
May 08 #Javascript
微信小程序网络层封装的实现(promise, 登录锁)
May 08 #Javascript
详解微信小程序的不同函数调用的几种方法
May 08 #Javascript
You might like
一些PHP Coding Tips(php小技巧)[2011/04/02最后更新]
2011/05/02 PHP
php设计模式 Strategy(策略模式)
2011/06/26 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
2014/05/15 PHP
用PHP代码给图片加水印
2015/07/01 PHP
PHP入门教程之数学运算技巧总结
2016/09/11 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
Prototype1.6 JS 官方下载地址
2007/11/30 Javascript
JavaScript建立一个语法高亮输入框实现思路
2013/02/26 Javascript
javascript委托(Delegate)blur和focus用法实例分析
2015/05/26 Javascript
如何用jQuery实现ASP.NET GridView折叠伸展效果
2015/09/26 Javascript
jquery实现二级导航下拉菜单效果
2015/12/18 Javascript
教你用javascript实现随机标签云效果_附代码
2016/03/16 Javascript
微信小程序分页加载的实例代码
2017/07/11 Javascript
JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)
2017/07/23 Javascript
浅谈node中的exports与module.exports的关系
2017/08/01 Javascript
实现单层json按照key字母顺序排序的示例
2017/12/06 Javascript
vue实现前进刷新后退不刷新效果
2018/01/26 Javascript
vue3.0 CLI - 2.3 - 组件 home.vue 中学习指令和绑定
2018/09/14 Javascript
vue中是怎样监听数组变化的
2020/10/24 Javascript
html5以及jQuery实现本地图片上传前的预览代码实例讲解
2021/03/01 jQuery
[04:36]DOTA2国际邀请赛 ti3精彩集锦
2013/08/19 DOTA
跟老齐学Python之关于循环的小伎俩
2014/10/02 Python
python实现回旋矩阵方式(旋转矩阵)
2019/12/04 Python
Python 实现使用空值进行赋值 None
2020/03/12 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
html5教程实现Photoshop渐变色效果
2013/12/04 HTML / CSS
意大利会呼吸的鞋:Geox健乐士
2017/02/12 全球购物
Alexandre Birman美国官网:亚历山大·伯曼
2019/10/30 全球购物
Java的for语句中break, continue和return的区别
2013/12/19 面试题
给酒店员工的表扬信
2014/01/11 职场文书
骨干教师培训方案
2014/05/06 职场文书
小学生纪念九一八事变演讲稿
2014/09/14 职场文书
经典祝酒词大全
2015/08/12 职场文书
党组织结对共建协议书
2016/03/23 职场文书
Django使用redis配置缓存的方法
2021/06/01 Redis
每日六道java新手入门面试题,通往自由的道路
2021/06/30 Java/Android