当前位置: 首页 > news >正文

SlickGrid点击/双击事件

分析

        SlickGrid提供了点击事件方法grid.onClick和grid.onDblClick用于捕获用户对表格列的点击,捕获到点击事件之后,修改表格数据,然后使用grid.updateRow方法将修改后的数据更新到表格中。

展示

 代码

创建grid(HTML)

<!--创建grid-->
<div id="myGrid" class="slick-container" style="width:600px;height:500px;"></div>

创建grid(JavaScript)

// 五角星样式
function priorityFormatter(row, cell, value, columnDef, dataContext) {const count = value === 'Low' ? 1 : value === 'Medium' ? 2 : 3;let icon = '';for (let i = 0; i < count; i++) {icon += '<span class="sgi sgi-star-outline"></span>';}return icon;
}var grid;
var data = [];
var columns = [  // 创建columns{id: "title", name: "Title", field: "title", width: 200, cssClass: "cell-title", editor: Slick.Editors.Text},{id: "priority", name: "Priority", field: "priority", width: 80, selectable: false, resizable: false},{id: "priority", name: "Priority", field: "priority", width: 80, selectable: false, resizable: false, formatter: priorityFormatter}
];var options = {editable: true,enableAddRow: false,enableCellNavigation: true,asyncEditorLoading: false,rowHeight: 30
};document.addEventListener("DOMContentLoaded", function() {for (var i = 0; i < 100; i++) {  // 创建数据var d = (data[i] = {});d["title"] = "Task " + i;d["priority"] = "Medium";}grid = new Slick.Grid("#myGrid", data, columns, options);
});

注册点击事件

// 注册点击事件
grid.onClick.subscribe(function (e) {var cell = grid.getCellFromEvent(e);if (grid.getColumns()[cell.cell].id == "priority") {if (!grid.getEditorLock().commitCurrentEdit()) {return;}// 修改表格数据var states = {"Low": "Medium", "Medium": "High", "High": "Low"};data[cell.row].priority = states[data[cell.row].priority];grid.updateRow(cell.row);  // 将修改后的数据更新到表格e.stopPropagation();}
});

注册双击事件

// 注册双击事件
grid.onDblClick.subscribe(function (e) {var cell = grid.getCellFromEvent(e);if (grid.getColumns()[cell.cell].id == "priority") {if (!grid.getEditorLock().commitCurrentEdit()) {return;}// 修改表格数据var states = {"Low": "Medium", "Medium": "High", "High": "Low"};data[cell.row].priority = states[data[cell.row].priority];grid.updateRow(cell.row);  // 将修改后的数据更新到表格e.stopPropagation();}
});

http://www.lryc.cn/news/488454.html

相关文章:

  • 一文详细深入总结服务器选型
  • 一、Nginx反向代理(七层代理)二、Nginx的TCP/UDP调度器(四层代理)
  • CSS+JQuery 实现弹力球效果,碰到屏幕边框弹回
  • shell编程规范和脚本变量
  • jspm美容院管理系统
  • Prometheus结合K8s(二)使用
  • 【虚幻引擎】UE5数字人开发实战教程
  • 深入分析:固定参考框架在RViz中的作用与对数据可视化的影响 ros ubuntu20.04
  • Android:时间选择器(最下面有效果图)
  • 第十六届蓝桥杯模拟赛(第一期)-c++/c
  • 如何挑选路由器?需要看哪些参数?
  • mysql-备份(二)
  • Tailwind CSS 和 UnoCSS简单比较
  • unity3d————范围检测
  • 修改this.$confirm的按钮位置、图标、文字及标题
  • SQL MID() 函数详解
  • 【蓝桥杯备赛】123(前缀和的复杂应用)
  • MINES
  • H.265流媒体播放器EasyPlayer.js H5流媒体播放器关于如何查看手机端的日志信息并保存下来
  • uni-app快速入门(十一)--常用JS API(上)
  • Flink任务提交到yarn上slot数量为0的问题
  • vue3怎么根据字符串获取组件实例
  • ISUP协议视频平台EasyCVR私有化视频平台新能源汽车充电停车管理方案的创新与实践
  • 智领未来: 宏集物联网HMI驱动食品与包装行业迈向智能化新高度
  • redis-击穿、穿透、雪崩
  • 【Redis】服务器异常重启,导致redis启动失败
  • Springboot+Vue的项目搭建(三)
  • 【Word】一键批量引用论文上标——将正文字体改为上标格式
  • DAY1 网络编程(TCP客户端服务器)
  • 如何在Ubuntu当中利用CloudCompare软件进行点云配准拼接?