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之ESC(第二类混淆)
May 06 Javascript
JS判断图片是否加载完成方法汇总(最新版)
May 13 Javascript
解析AngularJS中get请求URL出现的跨域问题
Dec 01 Javascript
浅谈JavaScript的自动垃圾收集机制
Dec 15 Javascript
Angular入口组件(entry component)与声明式组件的区别详解
Apr 09 Javascript
jQuery+ajax实现动态添加表格tr td功能示例
Apr 23 jQuery
一个Vue视频媒体多段裁剪组件的实现示例
Aug 09 Javascript
实例讲解JavaScript预编译流程
Jan 24 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
Jul 03 Javascript
JavaScript闭包原理与用法学习笔记
May 29 Javascript
javascript实现前端分页效果
Jun 24 Javascript
解决vue elementUI 使用el-select 时 change事件的触发问题
Nov 17 Vue.js
使用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 URL跳转代码 减少外链
2011/06/25 PHP
php笔记之:文章中图片处理的使用
2013/04/26 PHP
php检查字符串中是否包含7位GSM字符的方法
2015/03/17 PHP
jQuery+PHP发布的内容进行无刷新分页(Fckeditor)
2015/10/22 PHP
phpStudy 2016 使用教程详解(支持PHP7)
2017/10/18 PHP
快速排序 php与javascript的不同之处
2011/02/22 Javascript
基于jquery的滚动条滚动固定div(附演示下载)
2012/10/29 Javascript
js中top/parent/frame概述及案例应用
2013/02/06 Javascript
当达到输入长度时表单自动切换焦点
2014/04/06 Javascript
Vue.js组件tree实现省市多级联动
2016/12/02 Javascript
基于nodejs+express4.X实现文件下载的实例代码
2017/07/13 NodeJs
解决vue-router进行build无法正常显示路由页面的问题
2018/03/06 Javascript
使用Vuex实现一个笔记应用的方法
2018/03/13 Javascript
详解vuex结合localstorage动态监听storage的变化
2018/05/03 Javascript
Javascript Promise用法详解
2018/05/10 Javascript
JS非行间样式获取函数的实例代码
2018/06/05 Javascript
vue 使用vue-i18n做全局中英文切换的方法
2018/10/29 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
2019/01/18 Javascript
Vue 表情包输入组件的实现代码
2019/01/21 Javascript
快速对接payjq的个人微信支付接口过程解析
2019/08/15 Javascript
python使用beautifulsoup从爱奇艺网抓取视频播放
2014/01/23 Python
Python网站验证码识别
2016/01/25 Python
用Python设计一个经典小游戏
2017/05/15 Python
tensorflow实现对图片的读取的示例代码
2018/02/12 Python
Python中的支持向量机SVM的使用(附实例代码)
2019/06/26 Python
Django 用户认证组件使用详解
2019/07/23 Python
Python 实现的 Google 批量翻译功能
2019/08/26 Python
联想西班牙官网:Lenovo西班牙
2018/08/28 全球购物
网络工程师专家职业发展路线
2014/02/14 职场文书
青年标兵事迹材料
2014/08/16 职场文书
污水处理保证书
2015/05/09 职场文书
python Polars库的使用简介
2021/04/21 Python
golang 在windows中设置环境变量的操作
2021/04/29 Golang
opencv 分类白天与夜景视频的方法
2021/06/05 Python
微软Win11有哪些隐藏功能? windows11多个功能汇总
2021/11/21 数码科技
Python Flask实现进度条
2022/05/11 Python