国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

EasyUI 數據表格datagrid列自適應內容寬度的實現

2024-05-06 15:36:50
字體:
來源:轉載
供稿:網友

項目初期在加載數據表格的時候為了提高表格數據渲染速度,設置了默認寬度。

現需求需要加一個表格自適應的功能,觸發改功能,改變列寬度,但是不重新渲染表格,不發生數據請求。

設計思路,遍歷每項的所有數據,比較字節符串長度,取最大長度。再用最大長度和標題長度比較,如果標題長就去標題長度,如果字符串長,就取字符串的。

js

//表格自適應方法function changeWidth(agstr){  var dg = $('#'+agstr);  dg.datagrid("loading");//顯示加載狀態$$$  var fn=function(){    var opts = dg.datagrid('getColumnFields');  //獲取表頭所有field    var data=dg.datagrid('getData');//獲取數據表格請求的數據    var role = data.rows;//數據表格請求的數據,即每行的數據      for (var i = 0; i <opts.length ;i++) { //循環每一列的數據內容        var field=opts[i];        var ro_width = 0;        if(field != ''){          var col = dg.datagrid('getColumnOption', field);          var col_title = col.title;          for(j=0;j<role.length;j++){            if(StringTolog(role[j][field])>ro_width){              ro_width = StringTolog(role[j][field]);//比較當前field列的每條數據長度,取最大值            }          }        if(ro_width<StringTolog(col_title)){//如果當前列數據長度小于當前列表頭長度則取表頭長度          ro_width =StringTolog(col_title);        }            var ro_length=ro_width*14+10;//14是頁面字體像素大小 10是單元格左右內邊距大小        $("td[field='"+field+"'] div").width(ro_length);//設置列寬樣式        dg.datagrid('lockColumn',field);//禁止數據表格改變列寬※※※      }    }      dg.datagrid("loaded");//隱藏加載狀態$$$  }  setTimeout(fn,0);}//字符串的粗略換算function StringTolog(Str){  if(Str==null){    return 0;  }  Str = Str.toString();//該方法將取到的數據轉為String類型  Str = Str.replace(//s+/g,'');//替換空格  //兩個字節為長度1,一個字節為長度0.5,計算字符串總長度  var newStr = (Str.length-Str.replace(/[/x00-/xff]+/g,'').length)/2          +Str.replace(/[/x00-/xff]+/g,'').length;  return newStr;}

調用以上兩個方法就可以實現列寬自適應。

但是發現執行此方法之后,表頭和表身的單元格寬度都已經固定寫死,如果此時觸發調整列寬大小事件,只能改變表頭寬度,不會改變表身列寬,所以自適應列寬后可以取消改變列寬大小的功能

封裝凍結列方法:

//凍結列,禁止調節列尺寸$("#id").datagrid('lockColumn',field值);$.extend($.fn.datagrid.methods, {  lockColumn: function(jq, field){    return jq.each(function(){      var p = $(this).datagrid('getPanel');  // 獲取數據表格面板      var cell = p.find('div.datagrid-header td[field=' + field + '] > div.datagrid-cell'); // 獲取數據表格監聽改變列寬事件的節點      cell.resizable({disabled:true}); // 禁止改變列寬    });  }});            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 科技| 黄石市| 车致| 岑巩县| 绥宁县| 青龙| 巧家县| 泗水县| 柳州市| 建瓯市| 永清县| 广宗县| 泰州市| 和平县| 台山市| 宁化县| 新竹县| 贵港市| 青河县| 比如县| 凉城县| 开化县| 团风县| 澳门| 和林格尔县| 华池县| 翼城县| 贵溪市| 樟树市| 达日县| 若尔盖县| 三穗县| 金坛市| 明光市| 铁岭市| 姚安县| 香港 | 会理县| 舟曲县| 大姚县| 怀仁县|