handsontable右键新增、删除改为按钮新增删除

2023-11-04

handsontable自带右键新增表格行和删除行功能(afterchange钩子中),但是实际使用中,右键功能并不容易被发现,用户的使用体验不好,所以需要把新增行和删除行的功能拿出来,在表格外使用按钮实现表格行的新增和删除。实现的效果如下图所示:

在这里插入图片描述

html结构

 <hot-table key="climate" ref="climateRegulateRef" :settings="climateReclassify"></hot-table>
 <el-button type="success"
            size="mini"
            icon="el-icon-plus"
            @click="addClimateReClassRow">
 </el-button>
 <el-button type="danger"
            size="mini"
            icon="el-icon-delete"
            @click="removeClimateReclassifyRow">
 </el-button>

表格数据初始化

        climateReclassify: {
          data: [{selectBox: false, newVal: 1, typeName: '农田', oldVal: '', type: ''}],
          colHeaders: ['', '新值', '类型名称', '原值', '种类'],
          colWidths: [50, 150, 150, 150, 150],
          columns: [
            {data: 'selectBox', type: 'checkbox'},
            {data: 'newVal', type: 'numeric', readOnly: false},
            {data: 'typeName'},
            {data: 'oldVal'},
            {data: 'type', editor: 'select', selectOptions: ['植被', '水体', '其他']}
          ],
          height: '100%',
          licenseKey: "non-commercial-and-evaluation" // 非商业用途声明
        },

新增表格行函数

addClimateReClassRow: function () {
  let climateTable = this.$refs.climateRegulateRef.hotInstance;
  let data = climateTable.getSourceData()
  data[data.length] = {selectBox: false, newVal: '', typeName: '', oldVal: '', type: ''};
  climateTable.loadData(data)
}

删除表格行函数

removeClimateReclassifyRow() {
        let climateTable = this.$refs.climateRegulateRef.hotInstance;
        let indexArr = []
        let sourceData = []
        let data = climateTable.getSourceData().concat()
        for (let i = 0; i < data.length; i++) {
          if (data[i].selectBox === true) {
            indexArr.push(i)
          } else {
            sourceData.push(data[i])
          }
        }
        if (indexArr.length === 0) {
          Message.warning("请至少选择一行数据删除");
          return;
        }
        if (sourceData.length === 0) {
          Message.warning("至少应保留一种类型");
          return;
        }
        climateTable.loadData(sourceData);
      }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

handsontable右键新增、删除改为按钮新增删除 的相关文章

随机推荐

  • vmware下搭建openwrt

    最近闲来无事 想研究下openwrt 所以尝试着自己搭建一个来玩玩 当然这里不是以源码编译的形式 那样太耗时 首先官网下载已有的系统image 路径如下 https archive openwrt org chaos calmer 15 0
  • spring mysql JPA使用autoReconnect=true不生效

    项目里原先使用的是mybatis 使用的mysql配置是 url jdbc mysql xxxx 2400 documentary test useUnicode true characterEncoding UTF 8 autoRecon
  • XXL-JOB 执行器运行报错NoClassDefFoundError HttpObjectAggregator

    xxl job版本为2 3 1 问题描述 执行器启动时不报错 发生任务调度时 任务执行报错如下 2023 04 19 09 35 02 972 WARN nioEventLoopGroup 8 2 i n c ChannelInitiali
  • 2020电赛准备总结(三)

    今天是2020 10 4 现在是下午三点 距离电赛题目发布还有6天 昨天终于完成了追球小车的制作 第一次在csdn上上传视频 不知道怎么上传 想看的可以私信 二维云台 openmv的颜色追踪 这个个人感觉难度还好 不算太难 追踪小车 我做的
  • C#重写List索引器

    C 重写List索引器 using System using System Collections Generic namespace Model
  • 两步彻底解决删除AlibabaProtect

    初见 第一次见这玩意一直占用我的cpu 我试图终止任务发现没有效果 我去服务里面关掉运行发现并没有用 我就知道这不简单 这个阿里巴巴的流氓软件还在扫描我的磁盘 解决 其实要解决很简单 1 C Program Files x86 里有个文件
  • 微信小程序点击按钮弹出弹窗_微信小程序开发弹出框实现方法

    本文主要和大家分享微信小程序开发弹出框实现方法 本文所分享的代码很清晰 希望能帮助到大家 消息提示框 模态弹窗 操作菜单 1 消息提示 wx showToast OBJECT show js 获取应用实例 var app getApp Pa
  • 常用的第三方组件库整理

    一 store 引入localStorage的第三方库 以便于版本兼容 1 下载依赖 yarn add store 2 使用 import store from store 1 store set USER KEY user 保存 2 st
  • 2021-02-08

    学习目标 集合运算 表的加减法和join等 天池龙珠计划SQL训练营 学习内容 4 1表的加减法 4 1 1 什么是集合运算 4 1 2 表的加法 UNION 4 1 2 1 UNION 4 1 2 2UNION 与 OR 谓词 4 1 2
  • ARM Linux 开发板编译字符驱动模块

    ARM Linux 开发板编译字符驱动模块 my driver ko 1 下载源码 源码版本必须和开发板linux内核源码版本号一模一样例如 linux 4 14 111 查看开发板linux版本 uname r 解压 sudo tar z
  • Android Studio 模拟器卡慢、占内存解决方法,kotlinlambda匿名内部类

    一 Android virtual device 自带模拟器Intel 这里讲一下Android Studio 原生模拟器的改善吧 为 Android 模拟器配置硬件加速 Android 模拟器可以使用硬件加速功能来提升性能 有时甚至可以大
  • 一文读懂:全网都在说的AIGC到底是什么?

    什么是AIGC AIGC AI Generated Content 是利用人工智能来生成你所需要的内容 GC的意思是创作内容 与之相对应的概念中 比较熟知的还有PGC 是专业人员用来创作内容 UGC是用户自己创造内容 顾名思义AIGC是利用
  • 需求评审要点

    背景 某功能需要发起需求评审 会议参与人有 产品经理 产品线负责人 前后端开发 架构师 测试 ui等 作为该需求的产品经理主持评审会议 需要注意以下的点 1 需求得理清楚想清楚 若有多个方案 可列出多个方案 且列出自己决定的方案 若未想清楚
  • 52-C语言-文件问题-把字符串中的小写字母变为大写字母,并输出到磁盘文件“test”中,输入的字符串以‘!’结束

    问题 从键盘输入一个字符串 将其中的小写字母全部转换成大写字母 然后输出到一个磁盘文件 test 中保存 输入的字符串以 结束 思路 从键盘输入字符串 char str 100 gets str 将其中的小写字母变为大写字母 并且给大写字母
  • linux查看mysql内存_查看数据库最占资源或内存的查询SQL

    1 使用下面查询修正数据库中最占资源的查询 select b username a DISK READS reads a EXECUTIONS exec a disk reads decode a executions 0 1 a exec
  • MySQL的常用函数大全

    一 字符串函数 常用函数 函数 功能 CONCAT s1 s2 sn 字符串拼接 将s1 s2 sn拼接成一个字符串 LOWER str 将字符串全部转为小写 UPPER str 将字符串全部转为大写 LPAD str n pad 左填充
  • 二、MySQL逻辑架构与常见存储引擎

    1 MySQL逻辑架构 MySQL逻辑架构主要分为3层 如下图所示 1 1 连接层 作用 用于与客户端的连接处理 授权认证 安全 权限校验等 每个客户端连接 在MySQL服务器端都会有一个线程与其相互对应 这个线程负责处理这个客户端连接的操
  • protobuf 中复合数据类型的读写

    背景 protobuf 在生成的 C 代码中为 proto 文件中的每个 message 生成了对应的 C 类 并提供了数据成员的读写方法 message 类型读写 message 示例 message Point double lng 1
  • #if defined(__cplusplus)

    由于C 编译器需要支持函数的重载 会改变函数的名称 因此dll的导出函数通常是标准C定义的 这就使得C和C 的互相调用变得很常见 但是有时可能又会直接用C来调用 不想重新写代码 让标准C编写的dll函数定义在C和C 编译器下都能编译通过 通
  • handsontable右键新增、删除改为按钮新增删除

    handsontable自带右键新增表格行和删除行功能 afterchange钩子中 但是实际使用中 右键功能并不容易被发现 用户的使用体验不好 所以需要把新增行和删除行的功能拿出来 在表格外使用按钮实现表格行的新增和删除 实现的效果如下图