Element 默认勾选表格 toggleRowSelection的实现


Posted in Javascript onSeptember 04, 2019

官网尽管提供了toggleRowSelection方法,但没有提供demo实例。

通过了解,结合vue的特殊属性ref引用到Dom元素上,再执行dom上的toggleRowSelection方法。

Element 默认勾选表格 toggleRowSelection的实现

以下通过三种不同的数据来源实现table默认勾选对应的列:

1、固定写在data数据里:

注意el-table上有一个ref="table"的属性

<div id="app">
<template>
 <el-table :data="tableData3" border ref="table" style="width: 100%" @selection-change="handleSelectionChange">
  <el-table-column type="selection" width="55">
  </el-table-column>
  <el-table-column label="日期" width="120">
   <template scope="scope">{{ scope.row.date }}</template>
  </el-table-column>
  <el-table-column prop="name" label="姓名" width="120">
  </el-table-column>
  <el-table-column prop="address" label="地址" show-overflow-tooltip>
  </el-table-column>
 </el-table>
</template>
<el-button type="primary" @click="get()">ajax</el-button>
</div>

在勾子函数mounted里执行checked方法,可以自行测试在实例挂载之前beforeMount和挂载后mounted均使用。
this.$refs.table.toggleRowSelection(this.tableData3[0],true);就是本文的默认勾选的重点,toggleRowSelection(row, selected)接受两个参数,row传递被勾选行的数据,selected设置是否选中,这个官网写得很清楚就不多说了。

var Main = {
  data() {
   return {
    tableData3: [{
     date: '2016-05-03',
     name: '王小虎',
     address: '上海市普陀区金沙江路 1518 弄'
    }, {
     date: '2016-05-02',
     name: '王小虎',
     address: '上海市普陀区金沙江路 1518 弄'
    }, {
     date: '2016-05-04',
     name: '王小虎',
     address: '上海市普陀区金沙江路 1518 弄'
    }, {
     date: '2016-05-01',
     name: '王小虎',
     address: '上海市普陀区金沙江路 1518 弄'
    }, {
     date: '2016-05-08',
     name: '王小虎',
     address: '上海市普陀区金沙江路 1518 弄'
    }, {
     date: '2016-05-06',
     name: '王小虎',
     address: '上海市普陀区金沙江路 1518 弄'
    }, {
     date: '2016-05-07',
     name: '王小虎',
     address: '上海市普陀区金沙江路 1518 弄'
    }],
    multipleSelection: []
   }
  },
  mounted(){
    this.checked();//每次更新了数据,触发这个函数即可。
  },
  methods: {
    checked(){
       //首先el-table添加ref="table"引用标识
      this.$refs.table.toggleRowSelection(this.tableData3[0],true);
   },
   handleSelectionChange(val) {
    this.multipleSelection = val;
   }
  }
 }
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')

2、页面一加载使用ajax获得数据:

这里使用定时器摸拟了一下。

var Main = {
  data() {
   return {
    tableData3: [],
    multipleSelection: []
   }
  },
  mounted(){
    var _this = this;
     setTimeout(function(){
       _this.tableData3 = [{
       date: '2016-05-03',
       name: '王小虎',
       address: '上海市普陀区金沙江路 1518 弄'
      }, {
       date: '2016-05-02',
       name: '王小虎',
       address: '上海市普陀区金沙江路 1518 弄'
      }, {
       date: '2016-05-04',
       name: '王小虎',
       address: '上海市普陀区金沙江路 1518 弄'
      }, {
       date: '2016-05-01',
       name: '王小虎',
       address: '上海市普陀区金沙江路 1518 弄'
      }, {
       date: '2016-05-08',
       name: '王小虎',
       address: '上海市普陀区金沙江路 1518 弄'
      }, {
       date: '2016-05-06',
       name: '王小虎',
       address: '上海市普陀区金沙江路 1518 弄'
      }, {
       date: '2016-05-07',
       name: '王小虎',
       address: '上海市普陀区金沙江路 1518 弄'
      }];
      _this.$nextTick(function(){
        _this.checked();//每次更新了数据,触发这个函数即可。
    });    
   },3000);
  },
  methods: {
    checked(){
       //首先el-table添加ref="table"引用标识
      this.$refs.table.toggleRowSelection(this.tableData3[0],true);
   },
   handleSelectionChange(val) {
    this.multipleSelection = val;
   }
  }
 }
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')

3、一开始并没有数据时:

var Main = {
      data() {
        return {
          tableData3: [],
          multipleSelection: []
        }
      },
      beforeMount() {
      },
      methods: {
        checked(){
           //首先el-table添加ref="table"引用标识
          this.$refs.table.toggleRowSelection(this.tableData3[2],true);
         },
         handleSelectionChange(val) {
            this.multipleSelection = val;
         },
        get(){
          var datas=[{
            date: '2016-05-03',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1518 弄'
          }, {
            date: '2016-05-02',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1518 弄'
          }, {
            date: '2016-05-04',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1518 弄'
          }, {
            date: '2016-05-01',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1518 弄'
          }, {
            date: '2016-05-08',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1518 弄'
          }, {
            date: '2016-05-06',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1518 弄'
          }, {
            date: '2016-05-07',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1518 弄'
          }];
          this.tableData3 = datas;
          this.$nextTick(function(){
            this.checked();//每次更新了数据,触发这个函数即可。
           })
          
        }
      }
    }
    var Ctor = Vue.extend(Main)
    new Ctor().$mount('#app')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS 如果改变span标签的是否隐藏属性
Oct 06 Javascript
倒记时60刷新网页的js代码
Feb 18 Javascript
JQuery $.each遍历JavaScript数组对象实例
Sep 01 Javascript
AngularJS使用ng-repeat指令实现下拉框
Aug 23 Javascript
jQuery内容过滤选择器用法示例
Sep 09 Javascript
layui文件上传实现代码
May 20 Javascript
前端开发不得不知的10个最佳ES6特性
Aug 30 Javascript
微信小程序支付之c#后台实现方法
Oct 19 Javascript
React中嵌套组件与被嵌套组件的通信过程
Jul 11 Javascript
vue2中使用sass并配置全局的sass样式变量的方法
Sep 04 Javascript
JS实现选项卡效果的代码实例
May 20 Javascript
vue项目强制清除页面缓存的例子
Nov 06 Javascript
使用Angular material主题定义自己的组件库的配色体系
Sep 04 #Javascript
vue-loader中引入模板预处理器的实现
Sep 04 #Javascript
解决layer图标icon不加载的问题
Sep 04 #Javascript
JSX在render函数中的应用详解
Sep 04 #Javascript
关于layui的动态图标不显示的解决方法
Sep 04 #Javascript
vue本地打开build后生成的dist文件夹index.html问题
Sep 04 #Javascript
简单谈谈javascript高级特性
Sep 04 #Javascript
You might like
网友原创的PHP模板类代码
2008/09/07 PHP
php实现倒计时效果
2015/12/19 PHP
CSS和JS标签style属性对照表(方便js开发的朋友)
2010/11/11 Javascript
JS清除IE浏览器缓存的方法
2013/07/26 Javascript
2014 HTML5/CSS3热门动画特效TOP10
2014/12/07 Javascript
node爬取微博的数据的简单封装库nodeweibo使用指南
2015/01/02 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
2015/07/27 Javascript
jquery插件jquery.nicescroll实现图片无滚动条左右拖拽的方法
2015/08/10 Javascript
angularjs表格分页功能详解
2016/01/21 Javascript
springMVC结合AjaxForm上传文件
2016/07/12 Javascript
Angular.JS判断复选框checkbox是否选中并实时显示
2016/11/30 Javascript
解析JavaScript实现DDoS攻击原理与保护措施
2016/12/26 Javascript
js实现将json数组显示前台table中
2017/01/10 Javascript
vue 2.0路由之路由嵌套示例详解
2017/05/08 Javascript
nodejs二进制与Buffer的介绍与使用
2019/07/11 NodeJs
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
2020/05/18 Javascript
vue中可编辑树状表格的实现代码
2020/10/31 Javascript
如何在Express4.x中愉快地使用async的方法
2020/11/18 Javascript
[01:18:35]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第一场 1月29日
2021/03/11 DOTA
Python基本数据类型详细介绍
2014/03/11 Python
浅谈Python程序与C++程序的联合使用
2015/04/07 Python
Python中创建字典的几种方法总结(推荐)
2017/04/27 Python
利用matplotlib+numpy绘制多种绘图的方法实例
2017/05/03 Python
Python 新建文件夹与复制文件夹内所有内容的方法
2018/10/27 Python
python 切换root 执行命令的方法
2019/01/19 Python
python中对_init_的理解及实例解析
2019/10/11 Python
python opencv实现gif图片分解的示例代码
2019/12/13 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
五分钟学会HTML5的WebSocket协议
2019/11/22 HTML / CSS
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
美国电子产品折扣网站:Daily Steals
2017/05/20 全球购物
叙述DBMS对数据控制功能有哪些
2016/06/12 面试题
国际会议邀请函范文
2014/01/16 职场文书
工地宣传标语
2014/06/18 职场文书
教师个人年度总结
2015/02/11 职场文书
React中的Context应用场景分析
2021/06/11 Javascript