【vue】elemente-ui table toggleRowSelection 默认选择无效[已解决]

这篇具有很好参考价值的文章主要介绍了【vue】elemente-ui table toggleRowSelection 默认选择无效[已解决]。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目场景:

点击按钮,弹出一个弹出框,内部出现一个table表,表内数据是动态获取,同时得勾选上几个table表的数据,类似以下的图
【vue】elemente-ui table toggleRowSelection 默认选择无效[已解决],vue,vue.js,ui,javascript

问题描述

点击按钮显示弹出框,加载table中的数据,默认选择table表数据失效

//template
<el-dialog :visible.sync="openDialog">
	<el-table ref="multipleTableRef" :data="aaa">
	        <el-table-column type="selection" width="55" align="center" />
	        <el-table-column label="aa" align="center" prop="aa"/>
	</el-table>
</el-dialog>
//methods
handleShowWechatList(){
	....
   requestxxxx().then(res=>{
      this.aaa=res;//table表的数据
      //this.bbb是table表中被默认选中的数据
      if(this.bbb.length>0){
        this.bbb.map(row=>{
           this.$refs.multipleTableRef.toggleRowSelection(row);
        })
      }
      this.openDialog=true;//显示弹出框
    })
....
},

原因分析:

原因一: table表数据aa 没有渲染完就调用toggleRowSelection方法

原因二: 使用this.$refs.multipleTableRef.toggleRowSelection选中数据源和table数据源不一样

原因三: 因为是弹出框,需要等弹出框渲染成功后才能进行在进行toggleRowSelection选中操作


解决方案:

提示:使用$nextTick()延迟执行toggleRowSelection方法,同时toggleRowSelection方法中的参数得跟table表的数据源一样

//template
<el-dialog :visible.sync="openDialog">
	<el-table ref="multipleTableRef" :data="aaa">
	        <el-table-column type="selection" width="55" align="center" />
	        <el-table-column label="aa" align="center" prop="aa"/>
	</el-table>
</el-dialog>

//methods
handleShowWechatList(){
....
  requestxxxx().then(res=>{
    this.aa=res;//table表中的数据
    this.openDialog=true;//显示弹出框
    //this.bbb是table表中被默认选中的数据
    // 渲染和被渲染的数据源得相同
    if(this.bb.length>0){
      for(let i in this.aa){
        for(let q in this.bb){
          if(this.bb[q]["id"] == this.aa[i]["id"]){
          //等dom渲染完成,延迟执行nextTick内部函数
            this.$nextTick(()=>{
                  this.$refs.multipleTableRef.toggleRowSelection(this.aa[i]);
            })
            break;
          }
        }
      }
    }
  })
....
},

踩坑不易,还希望各位大佬支持一下 \textcolor{gray}{踩坑不易,还希望各位大佬支持一下} 踩坑不易,还希望各位大佬支持一下

📃 个人主页: \textcolor{green}{个人主页:} 个人主页: 沉默小管

📃 个人网站: \textcolor{green}{个人网站:} 个人网站: 沉默小管

📃 个人导航网站: \textcolor{green}{个人导航网站:} 个人导航网站: 沉默小管导航网

🔥 技术交流 Q Q 群: 837051545 \textcolor{green}{技术交流QQ群:837051545} 技术交流QQ群:837051545

👍 点赞,你的认可是我创作的动力! \textcolor{green}{点赞,你的认可是我创作的动力!} 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向! \textcolor{green}{收藏,你的青睐是我努力的方向!} 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富! \textcolor{green}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!

如果有不懂可以留言,我看到了应该会回复
如有错误,请多多指教文章来源地址https://www.toymoban.com/news/detail-716109.html

到了这里,关于【vue】elemente-ui table toggleRowSelection 默认选择无效[已解决]的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • element ui el-table 无数据时显示默认空图片(el-empty)

    当获取后台数据为空时,列表显示默认空图片,不正确姿势: 发现el-empty 默认空图片一直显示不出来,还以为el-empty用法有问题,弄了个空页面,直接加载el-empty 发现没有问题。查了一下原来el-table 数据为空时,显示默认图片写法不对,正确姿势如下: 这样就能正常显示el

    2024年02月13日
    浏览(72)
  • element-ui 日期时间选择控件DateTimePicker 带快捷方式,配置默认时间

    前言:好记性不如烂笔头 带快捷方式的 可设置默认时间 js中的Date对象 setHours()方法—— Date .setHours( hour,min,sec,millisec ),如new Date().setHour(0, 0, 0),new Date().setHour(23, 59, 59) 带快捷键的,关键属性picker-options,单个日期时间的选择或者日期时间段的选择都可以用 配置:picker-optio

    2024年02月11日
    浏览(71)
  • vue3 element plus table selection展示数据,默认选中功能

    当打开表格数据时,可能会根据后台返回的数据,默认选中符合条件的行 这样我们就用到了el-table-column,设 type 属性为 selection 1.表格的第一行,设置为: 2.table上定义ref属性,并且定义这个变量 3.在事件中配置一下 //修改选中的行,重新赋值 //结果 注意:支持树形结构

    2024年02月11日
    浏览(49)
  • 关于element ui TimePicker 时间选择器 default-value默认值问题

    因为美国时间所以更改了时区 用法 new Date(0, 0, 0, hour, minute, 0)

    2024年01月21日
    浏览(39)
  • 前端小记--2.element-ui中级联选择器cascader如何默认展开下拉框

    最近做项目时,遇到一个需求:在一个排班表中,展示人员的值班情况,点击单元格,弹出下拉框,修改人员排班信息。 由于下拉框选择内容是树状结构,这里使用了element-ui中级联组件cascader,设置单选模式即可。但是在官方的文档中没找到默认展开下拉框的api,折腾了一番

    2024年02月01日
    浏览(47)
  • element ui的日期选择器动态设定年份,并默认显示在该年份范围的日期时间

    选中某个年份,让日期选择器只能选择该年份内的时间,并且默认显示该年份的时间(由于日期选择器默认显示为当前时间,所以需要跳转到选择的年份) 例:年份选择了2022年,那么日期选择也相应显示到2022年,对月日没有要求,月日默认显示为当前日期的月日,只是年份变

    2024年02月13日
    浏览(48)
  • Element-ui Pagination 分页使用:切换页数以及选择每页个数table没有反应

    最近在练手vue2.0 +  element-ui项目,在组合使用element分页器和table的时候遇到一点问题,由于练手项目所以后端仅提供table数据,并未进行分页处理,所以对table数据的分页使用了前端处理方式,即获取所有table数据后在前端处理数据实现分页。 分页器视图部分,这里注意 !!

    2024年02月15日
    浏览(36)
  • elements ui vue table 多选操作

    前言:总结一下 elements ui vue 框架使用中出现的问题,目前来看vue 的开发代码的质量和效率 要高于传统的 js 框架,至少在管理系统的开发上面,代码量相对比较小 可以参考 elements ui 官网 https://element.eleme.io/#/zh-CN/component/table#table-column-scoped-slot 具体在实际使用中基本都是带分

    2024年02月16日
    浏览(35)
  • vue+element plus 使用table组件,清空用户的选择项

    使用官方方法  clearSelection ,  tableRef.value.clearSelection() 清除table组件 用户的选择项。

    2024年02月07日
    浏览(52)
  • Vue Element-ui Table表格排序

    一.表格中有时候会有排序的需求,如果只针对当前页进行排序,那么前端就可以实现排序,在对应需要排序的字段中,使用sortable字段即可。 二.存在分页的情况时,前端仅仅使用sortable当前页排序已经不能满足我们的需求,无法对所有数据进行排序。这时候我们就要使用后端

    2024年02月11日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包