<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont

简介: 这几天在使用LigerUI(版本为1.2.2)编辑表格组件的时候,遇到几个小问题,从官方demo和api中没有找到解决的办法 问题1、从数据库查询出来的主键单元格不可编辑问题 主键单元格已经保存之前编辑的数据,由于是...
+关注继续查看

这几天在使用LigerUI(版本为1.2.2)编辑表格组件的时候,遇到几个小问题,从官方demo和api中没有找到解决的办法

问题1、从数据库查询出来的主键单元格不可编辑问题

主键单元格已经保存之前编辑的数据,由于是主键,因此一旦保存就不需要再进行修改

找到了一点儿线索,核心代码如下:

onBeforeEdit: function (e){
                	if (e.record.editTime) {
                		e.record.id.enabledEdit = false;
                		//dataGrid.reRender();
                	}
                	return true;
                }

其中,reRender()函数是从http://www.tuicool.com/articles/ZZnyu2F找到的,新版本没有这个函数,虽然重新设置了单元格的enabledEdit属性为false,但是不知道如何阻止编辑单元格,于是这个问题只能通过变通的方式解决

变通的解决方式为,在编辑完成后判断当前记录是否已经保存过,比如已经有保存时间等属性,如果已经保存,就自动恢复成编辑之前的数据,核心代码如下:

onBeforeSubmitEdit:  function (e) {
		        	//查询出来的数据id不能修改
		        	if (e.column.name == "id" && e.record.editTime) {
		        		return false;
		        	}
		        }
虽然,变通解决了不能修改的问题,但是理想的效果是单元格不可编辑

问题2:单元格校验问题

可编辑的表格,其中的数据有些是需要进行格式、业务校验的,虽然有人在ligerGrid的columns中写了validate属性,但是不知道如何触发其中的校验规则,设置的校验不能触发,肯定是不能起作用的,于是这个问题也需要找个变通的方式解决


变通的解决方式为,在保存之前,对每行的数据进行校验,遍历每行数据的核心代码

function validateGrid() {
        	var rows = dataGrid.rows;
        	for (var i = 0; i < rows.length; i++) {
        		if (rows[i].id.length == 0) {
        			$.ligerDialog.warn("第"+(i+1)+"行[编码]不能为空");
        			return false;
        		}
        		if (rows[i].name.length == 0) {
        			$.ligerDialog.warn("第"+(i+1)+"行[名称]不能为空");
        			return false;
        		}
        	}
        	return true;
        }
虽然,解决了数据校验问题,但是校验不通过的单元格,显示效果和校验通过的一样,效果不是很好


LigerUI使用起来比较简单,作者也半年左右升级一次,api虽然已有在线版的http://api.ligerui.com/,但是api函数没有名称排序,找起来不是很方便,有些函数没有在api中体现出来,只能查看源码或者开发工具调试才能找到相关的调用方法,不过还是要赞一个,支持免费、开源的LigerUI


相关文章
|
1天前
|
存储 JSON 缓存
十行代码让日志存储降低80%
日志是系统中熵增最快的一个模块,它承载了业务野蛮生长过程中的所有副产品。本文介绍了一个日志治理案例,围绕降本和提效两大主题,取得一定成效,分享给所有渴望造物乐趣的同学。
52473 15
十行代码让日志存储降低80%
|
1天前
|
人工智能 算法 大数据
听静渔说,开发者以国赛的方式进场了
开发者关系和培训中心负责人孟晋宇, 做客天津卫视节目,讲述了阿里云在数字化人才培养和技能人才方面为开发者提供的体系化解决方案:我们积累了非常多的数字化实践经验,沉淀了体系化的能力技术,从而转化为体系化的课程,按照升级打怪的模式,通过微认证——ACA——ACP——ACE这样的认证体系,帮助开发者,逐步完成整体技术的认知能力和岗位技能的提升。
27483 4
听静渔说,开发者以国赛的方式进场了
|
2天前
|
Kubernetes Java 调度
Java 应用程序在 Kubernetes 上棘手的内存管理(上)
Java 应用程序在 Kubernetes 上棘手的内存管理
26819 1
|
2天前
|
人工智能 开发者
万物皆可AIGC,免费算力等你来
人人都可以玩转AIGC! 本次活动广泛征集运用阿里云产品进行AIGC创作的作品,无论你是小白还是资深开发者,都可以来活动页领取免费算力,根据教程或任意组合阿里云免费资源进行AIGC创作,云端释放无限创意!
41411 16
|
2天前
|
前端开发 JavaScript BI
做好这四步,服务端轻松成为全栈化人才
本文总结了作者和团队的其他同学在全栈化实践中的痛点和问题,分享了自己的解决思路和经验,希望让后人可以更轻松加入全栈化大家庭,走的更快更稳。
43857 11
做好这四步,服务端轻松成为全栈化人才
|
3天前
|
消息中间件 缓存 监控
Rocketmq并发和顺序消费的失败重试机制
Rocketmq并发和顺序消费的失败重试机制
|
3天前
|
Java 数据库连接 数据库
Spring 应用如何访问数据库,看这一篇就够了!
当我们开发应用时,访问数据库是一种常见的需求。 基本上所有需要持久化的数据,一般都存储在数据库中,例如常用的开源数据库 MySQL。 在今天的文章中,我将盘点一下 Java 应用访问数据的几种方式。
33445 6
|
6天前
|
存储 算法 OLAP
ChatGPT都推荐的向量数据库,不仅仅是向量索引
本文带大家一起了解阿里云 AnalyticDB 技术负责人姚奕玮在 QCon 全球软件开发大会(北京站)2023 上的精彩演讲,解密 AnalyticDB 全自研企业级向量数据库核心技术,以及新一代向量数据库在云原生存算分离和 AI 原生上的技术演进路线。
|
7天前
|
中间件 程序员 云计算
云计算未来发展的“变”与“不变” | C 位面对面
9 月 3 日,在QCon全球软件开发大会主会场,极客邦科技与阿里云认证正式宣发携手认证合作,举办了授牌仪式,共同致力于未来技术人才的发展。同时,阿里云 CIO & aliyun.com 负责人蒋林泉与极客邦科技创始人 & CEO 霍太稳也进行一次深入对话,讨论了影响企业数字化转型的人才问题,以及在 AIGC 浪潮下的云计算未来发展。
51969 22
|
Web App开发 监控 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
使用hive分析日志作业很多的时候,需要修改mysql的默认连接数 修改方法   打开/etc/my.cnf文件 在[mysqld]  中添加 max_connections=1000 重启mysql服务  service mysqld restart mysql>show variables like '%max_connections%'; 查看当前mysql的连接数方法 mysqladmin -uroot -p status 其中,Uptime:mysqld运行时间,单位秒。
601 0