EasyUI动态编辑datagrid单元格

EasyUI动态编辑datagrid单元格

var editField="";//编辑字段
var editOldValue="";//原始值
var editIndex = undefined;//编辑行
var dataGridId = "";


//创建DataGrid
function loadGrid(data,columnData,tableId){
	//点击当前表格之外时结束编辑
	$(document).mouseup(function(e) {
		var con = $("#" + tableId);   // 设置目标区域
		if (!con.is(e.target) && con.has(e.target).length === 0) {
			if (dataGridId && editIndex != undefined) {
				$("#" + dataGridId).datagrid('endEdit', editIndex);
			}
		}
	});
	
	var isColumnsEdit = [];
	var columns = [];
	for(var columnIndex=0;columnIndex<columnData.length;columnIndex++){
		var columnMap = columnData[columnIndex];
		var column = new Object();
		column.field = columnMap.hfield;
		column.title = columnMap.htitle;
		column.width = columnMap.hwidth;
		column.align = columnMap.halign;
		column.hidden = columnMap.hidden;
		//column.field = columnMap.hformula;
		if(columnMap.hisedit){
			isColumnsEdit.push(columnMap.hfield);
			//column.editor={type:"numberbox",options:{min:0,precision:2}};
			column.editor="text";
		}
		columns.push(column);
	}
	var columnArray = [columns];
	HcreateGrild({
		id:tableId,
		singleSelect:true,
		data:data,
		columns:columnArray,
		scrollbarSize:9,
		pagination : false,
		striped:true,
		onClickCell:function(index, field,value){
			var that = $(this);
			var dataGrid = $(that).datagrid('options');
			if(!(ismytask != "ismytask" || (typeof htype != "undefined" && htype == "view"))){
				if(isColumnsEdit.indexOf(field)>-1){
					editField = field;
					editOldValue = value;
					dataGridId = dataGrid.id;
					if(endEditing(that, index, field, value)) {
						$(that).datagrid('selectRow', index)
							.datagrid('editCell', { index: index, field: field });
						editIndex = index;
					}
				}
				
			}
		},
		onAfterEdit: function (rowIndex, rowData, changes){
			var that = $(this);
			if(isColumnsEdit.indexOf(editField)>-1){
				if(!changes[editField]){
					rowData[editField]=editOldValue;
					$(that).datagrid('refreshRow', rowIndex); 
				}
			}
		}
});	
}
//datagird编辑器
$.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;
			}
		});
	}
});

//判断是否编辑完成
function endEditing(that,index, field,value){
	if (editIndex == undefined){return true}
	if ($(that).datagrid('validateRow', editIndex)){
		$(that).datagrid('endEdit', editIndex);
		editIndex = undefined;
		return true;
	} else {
		return false;
	}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追Star仙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值