easyui combotree 异步加载节点 加载值显示数字id无法显示文本

在页面上,使用combotree控件的时候,由于节点是异步加载的,人为点击展开节点,才会加载下层子节点。当combotree加载数值的时候,如果是根节点,则可以展示正常的节点文本在combotree文本框中,如果加载数值的节点id是更深层次的子节点,则无法正常展示节点文本,而只能展示原始的节点id在combotree的文本框中,因为这个时候需要被匹配的那个节点根本没有加载出来,所以只能显示id。为了解决这个显示文本不正常的问题,尝试了很多方法,包括:一次性全加载,局部按路径加载,都无法满足要求,直到看到一篇BLOG,通过对combotree的tree对象追加一个用户想要的默认值节点,并使其隐藏来达到设置默认值的效果。

BLOG:http://blog.csdn.net/k769444252/article/details/50311431

根据这个BLOG上面介绍的方法,具体实现为:

//为combotree增加默认值隐藏节点,解决因异步加载导致默认值id直接显示到文本框中的问题  
		//cbtid:combotree的id  
		//defval:生成节点的id  
		//deftext:生成节点的文本用于显示  
		function defaultValue(cbtid,defVal,defText){  
		    var combotree =$('#'+cbtid);  
		    var tree = combotree.combotree('tree');  
		    var defNode = tree.tree('find',defVal);  
		    if(!defNode){  
		        tree.tree('append', {  
		            data: [{  
		                id: defVal,  
		                text: defText  
		            }]  
		        });  
		        defNode = tree.tree('find',defVal);  
		        //console.log(defNode);  
		        //console.log(combotree);  
		        combotree.combotree('setValue',defVal);  
		        tree.tree('select',defNode.target);  
		        defNode.target.style.display='none';  
		    }else{  
		        combotree.combotree('setValue',defVal);  
		    }  
		}
       
       function createTree(id,relaCd) {
    	   $('#rootOrgId').tree({
	            url: '<%=basePath %>organizationRelation/tree',
	            required: true,
	            lines:true,
	            queryParams:{id:id,relaCd:relaCd},
	            onLoadSuccess:
	            	function(node, data){
		            	if (data.length > 0) {
		                    var nodeSelect = $("#rootOrgId").tree('getSelected');
		                    if(nodeSelect == null) {
		                    	//找到第一个元素
			                    var n = $('#rootOrgId').tree('find', data[0].id);
		                    	//调用选中事件
			                    $('#rootOrgId').tree('select',n.target);
		                    }
		                }
	            	},
	            onSelect:function(node) {
	            		$("#selectOrgIdHidden").val(node.id);
	            		var parentNode = $('#rootOrgId').tree('getParent', node.target);
	            		
	            		if(parentNode == null || parentNode == undefined || parentNode == "") {
	            			$("#parentOrgIdHidden").val("");
	            		} else {
	            			$("#parentOrgIdHidden").val(parentNode.id);
	            		}
	            		
	            		createOrgTypeCombotree(node.id);
	            		
	            		$.ajax({
	              		  url:'<%=basePath %>organization/getOrg',
	              		  type:'GET',
	              		  data:{orgId:node.id},
	              		  dataType:'json',
	              		  timeout:1000,
	              		  cache:false,
	              		  async:false,
	              		  error:errorFunction,
	              		  success:function(data) {
	              			if(data != null) {
	              				$('#orgIdHidden').val(data.orgId);
	              				$('#orgNameId').textbox('setValue',data.orgName);
	              				$('#orgCodeId').textbox('setValue',data.orgCode);
	              				$('#orgPriorityId').textbox('setValue',data.orgPriority);
	              				$('#areaCodeId').textbox('setValue',data.areaCodeId);
	              				$('#cityTownId').combobox('setValue',data.cityTown);
	              				$('#orgGroupCodeId').textbox('setValue',data.orgGroupCode);
	              				$('#orgShortNameId').textbox('setValue',data.orgShortName);
	              				$('#orgDetailPartyNameId').textbox('setValue',data.partyName);
	              				$('#partyIdHidden').val(data.partyId);
	              				$('#orgTypeId').combobox('setValue',data.orgType);
	              				$('#orgFullNameId').textbox('setValue',data.orgFullName);
	              				
	              				defaultValue('telcomRegionId',data.telcomRegionId,data.regionName);
	              				defaultValue('locationId',data.locationId,data.locationName);
	              			}
	              		  }
	              	    });
	            		
	            	}
	        });
       }
其中核心方法为defaultValue,该方法通过对combotree的tree对象追加一个用户想要的默认值节点,并使其隐藏来达到设置默认值的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值