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 相关文章推荐
javascript firefox不显示本地预览图片问题的解决方法
Nov 12 Javascript
javascript 多级checkbox选择效果
Aug 20 Javascript
基于jquery的一行代码轻松实现拖动效果
Dec 28 Javascript
使用PHP+JQuery+Ajax分页的实现
Apr 23 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
Nov 12 Javascript
解析JavaScript中的不可见数据类型
Dec 02 Javascript
排序算法的javascript实现与讲解(99js手记)
Sep 28 Javascript
深入理解Commonjs规范及Node模块实现
May 17 Javascript
Vue.js搭建移动端购物车界面
Jun 28 Javascript
基于three.js编写的一个项目类示例代码
Jan 05 Javascript
微信小程序 textarea 层级过高问题简单解决方案
Oct 14 Javascript
Vue 实现登录界面验证码功能
Jan 03 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
动态网站web开发 PHP、ASP还是ASP.NET
2006/10/09 PHP
修改了一个很不错的php验证码(支持中文)
2007/02/14 PHP
php简单的留言板与回复功能具体实现
2014/02/19 PHP
JQuery Easyui Tree的oncheck事件实现代码
2010/05/28 Javascript
js禁止document element对象选中文本实现代码
2013/03/21 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
2014/05/07 Javascript
javascript二维数组转置实例
2015/01/22 Javascript
javascript常用函数(1)
2015/11/04 Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
2016/10/18 Javascript
JS弹出窗口的运用与技巧大全
2016/11/01 Javascript
Vue.js使用v-show和v-if的注意事项
2016/12/13 Javascript
jQuery使用正则表达式替换dom元素标签用法示例
2017/01/16 Javascript
javascript ES6中箭头函数注意细节小结
2017/02/17 Javascript
微信小程序页面间通信的5种方式
2017/03/31 Javascript
vue.js实例todoList项目
2017/07/07 Javascript
通过 JS 判断页面是否有滚动条的实现方法
2018/04/05 Javascript
vue click.stop阻止点击事件继续传播的方法
2018/09/04 Javascript
Node.js API详解之 console模块用法详解
2020/05/12 Javascript
零基础写python爬虫之使用urllib2组件抓取网页内容
2014/11/04 Python
python魔法方法-属性转换和类的表示详解
2016/07/22 Python
python利用不到一百行代码实现一个小siri
2017/03/02 Python
PyQt5每天必学之带有标签的复选框
2018/04/19 Python
浅谈pandas dataframe对除数是零的处理
2020/07/20 Python
Python: glob匹配文件的操作
2020/12/11 Python
CSS3 简单又实用的5个属性
2010/03/04 HTML / CSS
css3实例教程 一款纯css3实现的发光屏幕旋转特效
2014/12/07 HTML / CSS
西班牙英格列斯百货英国官网:El Corte Inglés英国
2017/10/30 全球购物
澳大利亚音乐商店:Bava’s Music City
2019/05/05 全球购物
美国爆米花工厂:The Popcorn Factory
2019/09/14 全球购物
公益活动策划方案
2014/01/09 职场文书
高一数学教学反思
2014/02/07 职场文书
2014年元旦感言
2014/03/06 职场文书
大客户经理岗位职责
2015/04/09 职场文书
辞职信怎么写?你都知道吗?
2019/06/24 职场文书
pt-archiver 主键自增
2022/04/26 MySQL
docker compose 部署 golang 的 Athens 私有代理问题
2022/04/28 Servers