/*列摺疊
兩種情況:
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");
}
}
treegrid expand and collapse
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.