el-table多选框设置默认选中,翻页保留选中状态

这篇具有很好参考价值的文章主要介绍了el-table多选框设置默认选中,翻页保留选中状态。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

 :row-key="getRowKeys"
:reserve-selection="true"

然后列表获取数据时用这个方法,我这里是默认选中row.number == 9的数据,

  this.$nextTick(() => {
        let table = this.tableData; 
        table.forEach(row => {
          if (row.number == 9)
            this.$refs.table.toggleRowSelection(row, true);
        });
      });

完整代码文章来源地址https://www.toymoban.com/news/detail-620079.html

<template>
  <div>
    <div style="width: 80%; margin: 20px auto">
      <div v-for="item in multipleSelection" :key="item.id">
        {{ item.name }}
      </div>
      <el-table
        :row-key="getRowKeys"
        border
        ref="table"
        :data="tableData"
        style="width: 100%"
        @selection-change="handleSelectionChange"
      >
        <el-table-column
          :reserve-selection="true"
          type="selection"
          width="55"
        />
        <el-table-column property="id" label="id" width="55" />
        <el-table-column property="name" label="name" />
        <el-table-column property="number" label="number" />
        <el-table-column property="desc" label="desc" />
      </el-table>
      <el-pagination
        :current-page="page"
        :page-sizes="[10, 20, 30]"
        background
        layout="total, sizes, prev, pager, next, jumper"
        :total="Number(totals)"
        @size-change="handleSizeChange"
        @current-change="handleCurrentChange"
      />
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      tableData: [],
      multipleSelection: [],
      page: 1,
      pageSize: 10,
      totals: ''
    }
  },
  methods: {
    SelectionChange() {
      this.$nextTick(() => {
      //这里把数据重新赋值一下,不然就会出现bug,从第一页翻到第二页可以保留,在回到第一页选中的就没了
        let table = this.tableData; 
        table.forEach(row => {
          if (row.number == 9)
            this.$refs.table.toggleRowSelection(row, true);
        });
      });
    },

    handleSelectionChange(e) {
      this.multipleSelection = e
    },
    // 获取列表数据
    getDemoList() {
      let param = {
        page: this.page,
        pageSize: this.pageSize
      }
      this.$axios.post('/api/getList', param).then((res) => {
        this.tableData = res.data.data.list
        this.totals = res.data.data.total
        this.SelectionChange()
      })
    },
    getRowKeys(row) {
      return row.id
    },
    handleCurrentChange(page) {
      this.page = page
      this.getDemoList()
    },
    handleSizeChange(pageSize) {
      this.pageSize = pageSize
      this.getDemoList()
    }
  },
  mounted() {
    this.getDemoList()
    
  }
}
</script>

到了这里,关于el-table多选框设置默认选中,翻页保留选中状态的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索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-select 多选框使用 以及回显默认选中说明

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

    2024年02月13日
    浏览(32)
  • el-table(type=“selection“)多选框两种回显

    目录 一、前端数据回显(页面间数据展示) 1、图片帮助理解 2、描述: 3、代码 4、两个API,一个v-model 二、数据库数据回显  1、描述: 2、核心代码: 3、比较完整代码:(这是element ui官方文档上的) 4、改动过的,更加适应现实场景的代码:     几个注意点: 1、图片帮助理解

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

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

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

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

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

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

    2024年02月11日
    浏览(32)
  • el-table默认选中

    最近开发,记录下el-table组件默认选中数据的方式,后台返回的数据不尽相同,代码里面有注释,可以自己根据不同的值换成自己需要的对应的key 场景1:根据用户选择的不同的id去请求渲染的数据,在渲染出来的数据里面进行数据的默认勾选 场景2:每次渲染的表格不同,所以

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

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

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

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

    2024年02月11日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包