/*列折叠
两种情况:
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
最新推荐文章于 2024-05-24 17:52:25 发布