treegrid expand and collapse

/*列摺疊
兩種情況:
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");
	}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章