easyUI datagrid 单个单元格编辑

这篇博客介绍了如何在datagrid中实现单个单元格编辑功能。当点击单元格时,整行进入编辑状态。核心代码包括`endEditing`函数用于结束编辑,`editCell`扩展方法用于设定可编辑列,以及`onClickCell`和`onEndEdit`事件处理单元格的编辑和数据保存。示例展示了在JavaScript中操作datagrid编辑状态的实现细节。
摘要由CSDN通过智能技术生成

datagrid 可实现编辑单元格,如果有多列都需要可编辑 当点击一个单元格 则此整行都会进行编辑,如图

 

单个单元格编辑效果,如图

 

 核心代码如下

var editIndex = undefined;
//结束编辑
		function endEditing() {
			if (editIndex == undefined) {
				return true
			}
			if ($('#dataView').datagrid('validateRow', editIndex)) {
				$('#dataView').datagrid('endEdit', editIndex);
				editIndex = undefined;
				editField = undefined;
				return true;
			} else {
				return false;
			}
		}
		$.extend($.fn.datagrid.methods, {
			editCell : function(jq, param) {
				return jq.each(function() {
					var opts = $(this).datagrid('options');
					var fields = $(this).datagrid('getColumnFields', true).concat(
							$(this).datagrid('getColumnFields'));
					for ( var i = 0; i < fields.length; i++) {
						var col = $(this).datagrid('getColumnOption', fields[i]);
						col.editor1 = col.editor;
						if (fields[i] != param.field) {
							col.editor = null;
						}
					}
					$(this).datagrid('beginEdit', param.index);
					for ( var i = 0; i < fields.length; i++) {
						var col = $(this).datagrid('getColumnOption', fields[i]);
						col.editor = col.editor1;
					}
				});
			}
		});

在datagrid 的onClickCell方法中处理

onClickCell: function (index,field,value) {
					if (endEditing()) {
						$(this).datagrid('selectRow', index).datagrid('editCell', {
							index : index,
							field : field
						});
						editIndex = index;
						
						//$(ed.target).combobox('setValue',value);
					}
				}

最后在onEndEdit方法中处理修改的数据

onEndEdit: function (index, row) {
					//保存单元格数据并刷新
					console.log(row);
				}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值