treegrid expand and collapse

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014074697/article/details/75069164
/*列折叠
两种情况:
1:展开:仅仅展开当前层,onclick触发
2:收缩:下层所有节点全部收缩
*/
function collapse(obj,fieldsStr,pstatus){
	var cls=$(obj).attr("class");
	var collapseFields=[];
	if(fieldsStr!=null && fieldsStr!=undefined && fieldsStr!=""){
		collapseFields=fieldsStr.split(",");
	}
	if(isNotEmpty(pstatus)){
		subCollapse(pstatus,obj,collapseFields);//按照上层pstatus状态触发下层节点
	}
	//当前节点onclick
	else{
		subCollapse(cls,obj,collapseFields);//按照自己当前的状态触发下层节点
	}
}
/* 递归收缩和展开 */
function subCollapse(cls,obj,collapseFields){
	//点击“-”,收缩
	if(cls=="fa-minus-square-o"){
		for(var i=0;i<collapseFields.length;i++){//递归被收缩元素,挨个收缩,如果被收缩元素下也有收缩列,递归收缩
			for(var j=0;j<allFields.length;j++){
				if(allFields[j].field==collapseFields[i]){
					if(isNotEmpty(allFields[j].isCollapse) && allFields[j].isCollapse>0){
						var iObj=document.getElementById(allFields[j].field);/* 获取列中的<i>元素 */
						if(iObj){
							var icls=$(iObj).attr("class");
							if(icls=="fa-minus-square-o"){
								collapse(iObj,allFields[j].collapseFields,"fa-minus-square-o");
							}
							break;
						}
					}
					break;
				}
			}
			var options=$("#treedg").treegrid("getColumnOption",collapseFields[i])
			/***由于列存在权限,有可能被设置折叠的列当前人员没有权限查看,所以不可直接使用,
			防止出错,要判断列存在(被折叠列,但无该列查看权限,要判断,否则hideColumn出错)*/
			if(isNotEmpty(options)){
				$("#treedg").treegrid("hideColumn",collapseFields[i]);
			}
			
		}
		$(obj).removeClass("fa-minus-square-o");
		$(obj).addClass("fa-plus-square-o");
	}
	//展开,仅仅当前层展开
	else{
		for(var i=0;i<collapseFields.length;i++){
			var options=$("#treedg").treegrid("getColumnOption",collapseFields[i])
			//列存在(被折叠列,但无该列查看权限,要判断,否则hideColumn出错)
			if(isNotEmpty(options)){
				$("#treedg").treegrid("showColumn",collapseFields[i]);
			}
		}
		$(obj).removeClass("fa-plus-square-o");
		$(obj).addClass("fa-minus-square-o");
	}
}


猜你喜欢

转载自blog.csdn.net/u014074697/article/details/75069164