使用Element时默认勾选表格toggleRowSelection方式

 更新时间:2022年10月21日 10:52:50   作者:xiongdaandxiaomi  
这篇文章主要介绍了使用Element时默认勾选表格toggleRowSelection方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Element时默认勾选表格toggleRowSelection

页面效果

在页面初始化加载时将表格中某行默认选中

在这里插入图片描述

使用方法:toggleRowSelection

方法名说明参数
toggleRowSelection用于多选表格,切换某一行的选中状态,如果使用了第二个参数,则是设置这一行选中与否(selected 为 true 则选中)row, selected

table表格渲染

方法名说明参数toggleRowSelection用于多选表格,切换某一行的选中状态,如果使用了第二个参数,则是设置这一行选中与否(selected 为 true 则选中)row, selectedtable表格渲染

      <el-table :data="listPowerSupplyTab" border ref="listPowerSupplyTab" width="100%"
                     @selection-change="handleSelectionChange">
                        <el-table-column  type="selection"  width="55">
                            </el-table-column>
                        <el-table-column
                            prop="powerSupplyStationName"
                            label="供电所名称"
                            width="180">
                        </el-table-column>
                        <el-table-column
                            prop="powerSupplyStationAddress"
                            label="供电所地址"
                            width="180">
                        </el-table-column>
                        <el-table-column
                            prop="contacts"
                            label="联系人">
                        </el-table-column>
                        <el-table-column
                            prop="telephone"
                            label="电话">
                        </el-table-column>
                        <el-table-column
                            prop="powerSupplyMode"
                            label="供电方式 ">
                        </el-table-column>
                        <el-table-column
                            prop="capacity"
                            label="配电容量 ">
                        </el-table-column>
                        <el-table-column
                            prop="subordinatePowerSupplyBureau"
                            label="所属供电局 ">
                        </el-table-column>
                        </el-table>               

注意:

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

2、toggleRowSelection(row, selected)接受两个参数,row传递被勾选行的数据,selected设置是否选中

使用watch监听listPowerSupplyTab数据

watch:{
        listPowerSupplyTab(n,o){
            this.$nextTick( ()=> {
                this.$refs.listPowerSupplyTab.toggleRowSelection(this.listPowerSupplyTab[0],true);
            })
        },
    },

ref引用到Dom元素上,再执行dom上的toggleRowSelection方法。

当页面有隐藏显示的tab页签时

因为一次性加载数据,因而监听active的变化

watch:{
        //监听active 
         active: {
            handler(n,o){
             this.$nextTick(()=> {
                  if(n == '6'){
                   this.listPowerSupplyTabNew.forEach((ele,indexItem) => {
                        if(ele.type=='1'){
                            this.$refs.listPowerSupplyTabRef.toggleRowSelection(ele);
                        }
                    })
                  }else if(n == '7'){
                   this.technicalInformationNew.forEach((ele,indexItem) => {
                        if(ele.type=='1'){
                            this.$refs.technicalInformationNewRef.toggleRowSelection(ele);
                        }
                    })
                  }
               
            })
        },
            immediate: true,
            deep: true
        },
        
    },

element表格默认勾选不生效的问题

默认勾选可以这样做

 this.$refs.multipleTable.toggleRowSelection(row);

如果不生效的话,一般需要考虑这几种情况

1、获取数据(选中的数据以及表格展示的数据)这里的两个数据必须是同一个对象的数据,也就是数据必须是表格当中的数据,而且 不能深拷贝

2、设置表格数据

3、设置完成后,一般我们都是获取到后端的代码再设置this.$refs.multipleTable.toggleRowSelection(row);

这里还要加一个$nextTick

具体代码如下:

    /**
     * @description: 获取表格数据
     * @param {String} code
     * @param {String} srcType
     */
    async getTableData(code, srcType) {
      try {
        this.tipContent = 'loading'
        const { result } = await querySubTabDefine({
          tableSrcType: srcType,
          subjectCode: code
        })
        for (const item of result) {
          item.select = item.flag === '1'
        }
        this.tableData = result
        this.$nextTick(() => {
          for (const row of this.tableData) {
            row.select && this.$refs.table.toggleRowSelection(row, true)
          }
        })
        // console.log(selectArr)
        this.tipContent = this.tableData.length ? false : 'empty'
        this.layoutTable()
      } catch (error) {
        console.error(error)
        this.tipContent = 'error'
        this.tableData = []
      }
    },

其中最主要是这一步

    this.$nextTick(() => {
          for (const row of this.tableData) {
            row.select && this.$refs.table.toggleRowSelection(row, true)
          }
        })

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue3搭配pinia的踩坑实战记录

    vue3搭配pinia的踩坑实战记录

    Pinia是一个同时支持Vue2和Vue3的应用状态管理工具,简单来说就是为了管理整个应用中的响应式数据,解决各个组件交互时数据状态的不好管理的问题,下面这篇文章主要给大家介绍了关于vue3搭配pinia踩坑的相关资料,需要的朋友可以参考下
    2022-04-04
  • Element基于el-input数字范围输入框的实现

    Element基于el-input数字范围输入框的实现

    本文主要介绍了 Element基于el-input数字范围输入框的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Vue之ref属性详解

    Vue之ref属性详解

    这篇文章主要为大家介绍了Vue之ref属性,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助,希望能够给你带来帮助
    2021-11-11
  • vue中使用 pako.js 解密 gzip加密字符串的方法

    vue中使用 pako.js 解密 gzip加密字符串的方法

    这篇文章主要介绍了vue项目中 使用 pako.js 解密 gzip加密字符串 的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • Vue3中的组件数据懒加载

    Vue3中的组件数据懒加载

    这篇文章主要介绍了Vue3中的组件数据懒加载问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • 一文详解Vue中nextTick的原理与作用

    一文详解Vue中nextTick的原理与作用

    Vue的nextTick方法是用于在DOM更新后执行回调的工具函数,它的作用是在当前JavaScript执行环境中延迟执行回调,以确保在下次DOM更新循环之前,可以访问到更新后的DOM,本文就给大家介绍一下Vue nextTick原理与作用,需要的朋友可以参考下
    2023-08-08
  • vuejs简单验证码功能完整示例

    vuejs简单验证码功能完整示例

    这篇文章主要介绍了vuejs简单验证码功能,结合完整实例形式分析了vue.js验证码的生成、显示、校验等相关操作技巧,需要的朋友可以参考下
    2019-01-01
  • element中el-table与el-form同用并校验

    element中el-table与el-form同用并校验

    本文主要介绍了element中el-table与el-form同用并校验,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 使用Vue-cli 3.0搭建Vue项目的方法

    使用Vue-cli 3.0搭建Vue项目的方法

    这篇文章主要介绍了使用Vue-cli 3.0搭建Vue项目的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • Vue3.0利用vue-grid-layout插件实现拖拽布局

    Vue3.0利用vue-grid-layout插件实现拖拽布局

    这篇文章主要介绍了Vue3.0利用vue-grid-layout插件实现拖拽布局,工作中难免遇到需要对页面布局进行拖拽然后改变布局,保存布局,下面文章就围绕Vue3.0利用vue-grid-layout插件实现拖拽布局的相关资料展开详细内容,需要的朋友可以参考一下
    2021-11-11

最新评论