设置EasyUI的可编辑Treegrid单元格内容

在使用EasyUI的可编辑Treegrid功能时,需要在代码中设置Treegrid的内容;
由于Treegrid没有完全继承DataGrid的方法,比如Treegrid不可以使用行索引,以及Treegrid没有updateRow函数,而此时我们需要设置它的值时应该怎么做呢?
现在我将我的解决方法给大家分享出来,如下:
1、请看下图需求:单击单元格设置第三列的值
设置EasyUI的可编辑Treegrid单元格内容_第1张图片
2、代码如下:


事项 代码 数量(只能填写数字) 单位
//初始化树形数据表格
initTreeGrid = function(){
		entryMess.dg = $("#dg");
		entryMess.dg.treegrid({
			url:url,//请求路径
			queryParams:{'proId':id},//请求参数
			fitColumns:true,
			idField: 'id',
			treeField: 'name',
			singleSelect: false,
			loadFilter: function(data){
				var li = data.treeData;
	       		return li;
			},
			onLoadSuccess:function(data){
				$("[node-id='ROOT']").hide();//隐藏ROOT节点
	        },
	        onClickCell:function(field,row){//单击单元格时进行内容编辑
	        	if(row != null){
        			if (editingId != undefined){
	    				entryMess.dg.treegrid('endEdit', editingId);
	    				editingId = undefined;
	    				entryMess.setParentValue(entryMess.row);//设置父节点的值为子节点相加
	    			}
	        	}
	        	entryMess.dg.treegrid('clearChecked')//单击取消之前选中行
	        	entryMess.dg.treegrid('select',row.id)//单击取消之前选中行
	        	entryMess.edit();//编辑函数
	        	
	        }
		});
	}
//编辑函数
var editingId;
	entryMess.edit = function(){
		if (editingId != undefined){
			entryMess.dg.treegrid('select', editingId);
			return;
		}
		var row = entryMess.dg.treegrid('getSelected');
		if (row){
			if(entryMess.dg.treegrid('getChildren',row.id).length==0){//子节点(孩子节点为0个)
				editingId = row.id
				entryMess.dg.treegrid('beginEdit', editingId);
				entryMess.row = row;
			}else{
				layer.alert("您只能给该项的下级项设置数额!");
			}
		}
	}
//设置父节点值
entryMess.setParentValue = function(row){
	var parent = entryMess.dg.treegrid('getParent',row.id);//获取上一个编辑的节点的父节点
	if(parent != null && parent.id !="ROOT"){
		var childs = entryMess.dg.treegrid('getChildren',parent.id);//获取孩子节点
		var num = 0//求得父节点num值
		for(var i=0; i

你可能感兴趣的:(EasyUI,EasyUI,TreeGrid)