el-table(type=“selection“)多选框两种回显

这篇具有很好参考价值的文章主要介绍了el-table(type=“selection“)多选框两种回显。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、前端数据回显(页面间数据展示)

1、图片帮助理解

2、描述:

3、代码

4、两个API,一个v-model

二、数据库数据回显

 1、描述:

2、核心代码:

3、比较完整代码:(这是element ui官方文档上的)

4、改动过的,更加适应现实场景的代码:

    几个注意点:


一、前端数据回显(页面间数据展示)

1、图片帮助理解

el-table(type=“selection“)多选框两种回显

2、描述:

 被选择的el-table多选框行数据,以此显示在另一张页面上,类似v-model,实时展示。

    在不了解row-key,reserve-selection这两个el-table方法之前,为了实现页面间数据回显必然会走些弯路。把简单的操作复杂化了。

3、代码

<template>
<div>
  <el-table
    ref="multipleTable"
    :data="tableData"
    @selection-change="handleSelectionChange"
    :row-key="row=>row.id">
    <el-table-column
      type="selection"
      width="55" 
      v-model="展示在另一张页面的数据组"
      :reserve-selection="true">
    </el-table-column>
    <el-table-column
      label="日期"
      width="120">
      <template slot-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>
</div>
</template>

4、两个API,一个v-model

集中在三行代码上,两个API,一个v-model就能让带多选框el-table (页面a)选中的数据展示在另一个页面(页面b)上,【而且(重点)删除另一个页面(b)删除或者添加的时候,可以反作用于页面(a)】。因此,我称之为页面间数据的回显。

el-table(type=“selection“)多选框两种回显

二、数据库数据回显

 1、描述:

这应该算是真正意义上的回显了。通过调用后端接口获取数组,然后将这些数据回显到el-table的多选框上。

2、核心代码:

this.$refs.multipleTable.toggleRowSelection(row, true)

3、比较完整代码:(这是element ui官方文档上的)

<template>
  <el-table
    ref="multipleTable"
    :data="tableData"
    tooltip-effect="dark"
    style="width: 100%"
    @selection-change="handleSelectionChange">
    <el-table-column
      type="selection"
      width="55">
    </el-table-column>
    <el-table-column
      label="日期"
      width="120">
      <template slot-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>
  <div style="margin-top: 20px">
    <el-button @click="toggleSelection([tableData[1], tableData[2]])">切换第二、第三行的选中状态</el-button>
    <el-button @click="toggleSelection()">取消选择</el-button>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        tableData: [{
          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: []
      }
    },

    methods: {
      toggleSelection(rows) {
        if (rows) {
          rows.forEach(row => {
            this.$refs.multipleTable.toggleRowSelection(row);
          });
        } else {
          this.$refs.multipleTable.clearSelection();
        }
      },
      handleSelectionChange(val) {
        this.multipleSelection = val;
      }
    }
  }
</script>

4、改动过的,更加适应现实场景的代码:

<template>
  <el-table
    ref="multipleTable"
    :data="tableData"
    tooltip-effect="dark"
    style="width: 100%"
    @selection-change="handleSelectionChange">
    <el-table-column
      type="selection"
      width="55">
    </el-table-column>
    <el-table-column
      label="日期"
      width="120">
      <template slot-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>

<script>
import {接口} from "接口路径"
  export default {
    data() {
      return {
        tableData: [{
          date: '2016-05-03',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        }, {
          date: '2016-05-02',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 弄'
        }],
        res:[],
        multipleSelection: []
      }
    },
    created(){
    this.data()
   },
    methods: {
      data() {
        接口(query).then(res=>{
        this.res=res
        if (this.res) {
          this.res.forEach(el=>{
          for(let i=0;i<this.tableDta.length;i++){
          if(el==this.tableDta[i]){
            this.$refs.multipleTable.toggleRowSelection(this.tableDta[i]);
                    }
           } 
   })
        } 
     })
        
      },
      handleSelectionChange(val) {
        this.multipleSelection = val;
      }
    }
  }
</script>

    几个注意点:

   1、使用this.$refs.multipleTable.toggleRowSelection(row, true)的时候,传入的row是关联此el-table的data数组中的元素。

el-table(type=“selection“)多选框两种回显

el-table(type=“selection“)多选框两种回显

   2、数据库数据回显,调用this.$refs.multipleTable.toggleRowSelection(row, true)方法的时候,必须实在el-table挂在完成之后才会起作用,因此eement ui的在页面中使用this.$refs.multipleTable.toggleRowSelection(row, true),是通过添加点击事件来实现的。那么怎么省去点击事件,让其挂在完自动回显,需要找准时机。

el-table(type=“selection“)多选框两种回显文章来源地址https://www.toymoban.com/news/detail-431527.html

到了这里,关于el-table(type=“selection“)多选框两种回显的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • vue el-table 多选框回填

    主要代码: 效果: html js

    2024年01月18日
    浏览(35)
  • el-table中设置第一列为多选框,且多选框动态禁用

    给el-table第一列写成以下代码: 效果: 多选框动态禁用 el-table中设置了 type=\\\"selection\\\",但是由于部分数据是已经处理过的,不允许选中,但是其他的数据有可以多选的时候,我们需要动态的判断每一行的数据是否可以选中, type=\\\"selection\\\"时有这样一个属性: 所以我们只需要动态

    2024年01月18日
    浏览(29)
  • el-table 多个表格切换多选框显示bug

    今天写了个功能,点击左侧的树做判断,一级树节点显示系统页面,二级树节点显示数据库页面,三级树节点显示表页面。 数据库页面和表页面分别有2个el-table  ,上面的没有多选框,下面的有多选框  现在出现bug,在点击树节点,代码: // 点击节点     nodeClick(data) {    

    2024年02月11日
    浏览(32)
  • 实现el-table两列多选框且不可同时勾选

    1、效果图如下,功能:必修和选修不可同时勾选 2、代码如下

    2024年02月11日
    浏览(32)
  • el-table多选框设置默认选中,翻页保留选中状态

    最近碰到个需求,el-table列表渲染数据,要求有多选框并且附带默认选中,翻页后保留选中状态 写默认选中时百度一下还很简单,但是碰到个bug,第一次翻页可以保留,第二次翻页回来之后选中的就没了。 经过研究解决,记录一下,直接上代码了 默认选中只需要给table增加

    2024年02月14日
    浏览(41)
  • el-table 单击某一行,该行的前面的多选框显示已勾选

    目   录         官网:       1.  单页面        2. table是组件 案例: 官网:   1.  单页面 通过单击获取当前行的数据,然后传给选中显示勾选的方法。 2. table是组件 2.1  在table组件中添加方法 2.2  在主页面调用

    2024年02月11日
    浏览(38)
  • element-ui的el-table表格复选框只能单选,不可多选

    element的el-table表格复选框只能选中一条,选择下一条,上一条去掉勾选。使用文档中select方法,el-table绑定一个ref。具体代码实现如下 toggleRowSelection:用于多选表格,切换某一行的选中状态,如果使用了第二个参数,则是设置这一行选中与否(selected 为 true 则选中) 

    2024年02月11日
    浏览(45)
  • Element-Puls Form表单内嵌套el-table表格,根据表格复选框多选或单选动态设置行的验证规则

    根据 Table 表格内的复选框来控制当前选中行是否添加必填校验规则 我们需要设置一个 flag 来标识已勾选的行,el-table渲染数据结构是数组对象形式,我们可以在每个对象中手动加如一个标识,例如默认:selected : false,如你的源数据中已有类似key,则可用它作于唯一标识 htm

    2024年02月02日
    浏览(45)
  • el-select 多选框使用 以及回显默认选中说明

    改动点 el-select 添加属性  multiple,  v-model=  绑定的必须是个数组,在data中定义好,  回显的时候,后台传递数组有值就能显示多个选中的。 后台 遇到问题建议多看element官网文章 ,下拉框单选、多选、输入检索都有案例 学习来源: el-select 多选框使用 以及回显默认选中

    2024年02月13日
    浏览(31)
  • el-table多选toggleRowSelection不生效?

    做弹窗里有个表格多选时,经常遇到再次打开弹窗, 已选值赋值不上 的问题,这里简单记录一下解决方案。 element官方提供的例子经常是有各种问题的,这里经常是 toggleSelection不生效 toggleRowSelection是用来控制table表格选择框回显的方法,这个方法有两个参数 toggleRowSelection

    2024年02月11日
    浏览(25)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包