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 相关文章推荐
使用EXT实现无刷新动态调用股票信息
Nov 01 Javascript
JS setCapture 区域外事件捕捉
Mar 18 Javascript
jquery ajax提交整个表单元素的快捷办法
Mar 27 Javascript
jquery选择器使用详解
Apr 08 Javascript
jQuery中阻止冒泡事件的方法介绍
Apr 12 Javascript
jQuery实现可关闭固定于底(顶)部的工具条菜单效果
Nov 06 Javascript
一道关于JavaScript变量作用域的面试题
Mar 08 Javascript
JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
Aug 16 Javascript
老生常谈javascript的面向对象思想
Aug 22 Javascript
Angular6中使用Swiper的方法示例
Jul 09 Javascript
了解重排与重绘
May 29 Javascript
解决vue watch数据的方法被调用了两次的问题
Nov 07 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
用函数读出数据表内容放入二维数组
2006/10/09 PHP
PHP重载基础知识回顾
2020/09/10 PHP
通过jQuery源码学习javascript(二)
2012/12/27 Javascript
jQuery实现的仿百度分页足迹效果代码
2015/10/30 Javascript
Javascript实现鼠标框选操作  不是点击选取
2016/04/14 Javascript
jQuery绑定事件on()与弹窗的简要概述
2016/04/27 Javascript
全面理解闭包机制
2016/07/11 Javascript
使用JS正则表达式 替换括号,尖括号等
2016/11/29 Javascript
JS常用倒计时代码实例总结
2017/02/07 Javascript
jquery单击文字或图片内容放大并居中显示
2017/06/23 jQuery
解决Vue页面固定滚动位置的处理办法
2017/07/13 Javascript
详解微信小程序Page中data数据操作和函数调用
2017/09/27 Javascript
JS使用setInterval实现的简单计时器功能示例
2018/04/19 Javascript
JavaScript实现封闭区域布尔运算的示例代码
2018/06/25 Javascript
JS中数据结构之栈
2019/01/01 Javascript
JS数组splice操作实例分析
2019/10/12 Javascript
javaScript把其它类型转换为Number类型
2019/10/13 Javascript
js实现鼠标拖曳效果
2020/12/30 Javascript
js实现随机点名
2021/01/19 Javascript
python取代netcat过程分析
2018/02/10 Python
python的dataframe转换为多维矩阵的方法
2018/04/11 Python
利用Python实现手机短信监控通知的方法
2019/07/22 Python
关于keras中keras.layers.merge的用法说明
2020/05/23 Python
如何查找网页漏洞
2016/06/22 面试题
啤酒销售实习自我鉴定
2013/09/24 职场文书
旅游管理专业个人求职信范文
2013/12/24 职场文书
求职信需要的五点内容
2014/02/01 职场文书
应聘英语教师求职信
2014/04/24 职场文书
投标承诺书怎么写
2014/05/24 职场文书
尊师重教演讲稿
2014/09/04 职场文书
单位授权委托书范本
2014/09/26 职场文书
2014年党员评议表自我评价
2014/09/27 职场文书
2015暑期爱心支教策划书
2015/07/14 职场文书
2019班干部竞选演讲稿范本!
2019/07/08 职场文书
python在package下继续嵌套一个package
2022/04/14 Python
阿里云服务器(windows)手动部署FTP站点详细教程
2022/08/05 Servers