成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

EasyUI 數(shù)據(jù)表格datagrid列自適應(yīng)內(nèi)容寬度(不需重新加載表格)

FrozenMap / 1305人閱讀

摘要:項(xiàng)目初期在加載數(shù)據(jù)表格的時(shí)候?yàn)榱颂岣弑砀駭?shù)據(jù)渲染速度,設(shè)置了默認(rèn)寬度?,F(xiàn)需求需要加一個(gè)表格自適應(yīng)的功能,觸發(fā)改功能,改變列寬度,但是不重新渲染表格,不發(fā)生數(shù)據(jù)請(qǐng)求。設(shè)計(jì)思路,遍歷每項(xiàng)的所有數(shù)據(jù),比較字節(jié)符串長(zhǎng)度,取最大長(zhǎng)度。

項(xiàng)目初期在加載數(shù)據(jù)表格的時(shí)候?yàn)榱颂岣弑砀駭?shù)據(jù)渲染速度,設(shè)置了默認(rèn)寬度。
現(xiàn)需求需要加一個(gè)表格自適應(yīng)的功能,觸發(fā)改功能,改變列寬度,但是不重新渲染表格,不發(fā)生數(shù)據(jù)請(qǐng)求。

設(shè)計(jì)思路,遍歷每項(xiàng)的所有數(shù)據(jù),比較字節(jié)符串長(zhǎng)度,取最大長(zhǎng)度。再用最大長(zhǎng)度和標(biāo)題長(zhǎng)度比較,如果標(biāo)題長(zhǎng)就去標(biāo)題長(zhǎng)度,如果字符串長(zhǎng),就取字符串的。
js

//表格自適應(yīng)方法
function changeWidth(agstr){
    var dg = $("#"+agstr);
    dg.datagrid("loading");//顯示加載狀態(tài)$$$
    var fn=function(){
        var opts = dg.datagrid("getColumnFields");    //獲取表頭所有field
        var data=dg.datagrid("getData");//獲取數(shù)據(jù)表格請(qǐng)求的數(shù)據(jù)
        var role = data.rows;//數(shù)據(jù)表格請(qǐng)求的數(shù)據(jù),即每行的數(shù)據(jù)
            for (var i = 0; i ro_width){
                            ro_width = StringTolog(role[j][field]);//比較當(dāng)前field列的每條數(shù)據(jù)長(zhǎng)度,取最大值
                        }
                    }
                if(ro_width

調(diào)用以上兩個(gè)方法就可以實(shí)現(xiàn)列寬自適應(yīng)。
但是發(fā)現(xiàn)執(zhí)行此方法之后,表頭和表身的單元格寬度都已經(jīng)固定寫(xiě)死,如果此時(shí)觸發(fā)調(diào)整列寬大小事件,只能改變表頭寬度,不會(huì)改變表身列寬,所以自適應(yīng)列寬后可以取消改變列寬大小的功能
封裝凍結(jié)列方法:

//凍結(jié)列,禁止調(diào)節(jié)列尺寸$("#id").datagrid("lockColumn",field值);
$.extend($.fn.datagrid.methods, {
    lockColumn: function(jq, field){
        return jq.each(function(){
            var p = $(this).datagrid("getPanel");    // 獲取數(shù)據(jù)表格面板
            var cell = p.find("div.datagrid-header td[field=" + field + "] > div.datagrid-cell"); // 獲取數(shù)據(jù)表格監(jiān)聽(tīng)改變列寬事件的節(jié)點(diǎn)
            cell.resizable({disabled:true}); // 禁止改變列寬
        });
    }
});

在給每列設(shè)置寬度的時(shí)候調(diào)用該方法
dg.datagrid("lockColumn",field);
changeWidth 方法中的※※※位置

在重新定義列寬的時(shí)候如果數(shù)據(jù)量過(guò)大會(huì)導(dǎo)致頁(yè)面卡頓,可以再觸發(fā)該方法的開(kāi)始位置調(diào)用datagrid的loading方法,結(jié)束時(shí)調(diào)用loaded方法,changeWidth 方法中的$$$位置

因?yàn)樵谟|發(fā)表格自適應(yīng)方法后調(diào)用了datagrid的凍結(jié)列方法,所以再重新查詢數(shù)據(jù)的時(shí)候表頭不會(huì)重新渲染,只有表身會(huì),,表身就會(huì)恢復(fù)默認(rèn)寬度,就會(huì)出現(xiàn)表頭和表身對(duì)不齊的問(wèn)題,表頭也不能改變寬度。
解決辦法,在數(shù)據(jù)表格數(shù)據(jù)加載成功時(shí)取消凍結(jié)列,清空之前計(jì)算的列寬

封裝取消凍結(jié)列方法

//取消凍結(jié)列,允許調(diào)節(jié)列尺寸$("#id").datagrid("unlockColumn",field值);
$.extend($.fn.datagrid.methods, {
    unlockColumn: function(jq, field){
        return jq.each(function(){
            var p = $(this).datagrid("getPanel");    // 獲取數(shù)據(jù)表格面板
            var cell = p.find("div.datagrid-header td[field=" + field + "] > div.datagrid-cell");  // 獲取數(shù)據(jù)表格監(jiān)聽(tīng)改變列寬事件的節(jié)點(diǎn)
            cell.resizable({disabled:false}); // 允許改變列寬
        });
    }
});

數(shù)據(jù)加載成功觸發(fā)

onLoadSuccess: function (data) {
            var opts = $(this).datagrid("getColumnFields");    //獲取表頭所有field
             for(var i=0;i

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/105755.html

相關(guān)文章

  • EasyUI datagrid數(shù)據(jù)表格單元格內(nèi)允許換行 解決單元格內(nèi)純數(shù)字或英文文本不能換行問(wèn)題

    摘要:官方的數(shù)據(jù)表格屬性中提供了屬性其作用是設(shè)置為,則把數(shù)據(jù)顯示在一行里。設(shè)置為可提高加載性能。 官方的數(shù)據(jù)表格屬性中提供了nowrap屬性其作用是:設(shè)置為 true,則把數(shù)據(jù)顯示在一行里。設(shè)置為 true 可提高加載性能。 默認(rèn)為true在設(shè)置數(shù)據(jù)表格屬性時(shí)將nowrap屬性設(shè)置為false時(shí),并且設(shè)置表格的寬度,當(dāng)單元格內(nèi)數(shù)據(jù)內(nèi)容超過(guò)寬度時(shí)就會(huì)自動(dòng)換行 { field : khm...

    junfeng777 評(píng)論0 收藏0
  • EasyUI datagrid問(wèn)題整理

    摘要:什么是是一種基于和的用戶界面插件集合。為創(chuàng)建現(xiàn)代化,互動(dòng),應(yīng)用程序,提供必要的功能。是個(gè)完美支持網(wǎng)頁(yè)的完整框架。很簡(jiǎn)單但功能強(qiáng)大的。返回則取消該動(dòng)作。該函數(shù)有下列參數(shù)要傳遞到遠(yuǎn)程服務(wù)器的參數(shù)對(duì)象。當(dāng)檢索數(shù)據(jù)成功時(shí)調(diào)用的回調(diào)函數(shù)。 什么是easyUI easyui是一種基于jQuery、Angular.、Vue和React的用戶界面插件集合。easyui為創(chuàng)建現(xiàn)代化,互動(dòng),JavaScr...

    megatron 評(píng)論0 收藏0
  • EasyUI datagrid問(wèn)題整理

    摘要:什么是是一種基于和的用戶界面插件集合。為創(chuàng)建現(xiàn)代化,互動(dòng),應(yīng)用程序,提供必要的功能。是個(gè)完美支持網(wǎng)頁(yè)的完整框架。很簡(jiǎn)單但功能強(qiáng)大的。返回則取消該動(dòng)作。該函數(shù)有下列參數(shù)要傳遞到遠(yuǎn)程服務(wù)器的參數(shù)對(duì)象。當(dāng)檢索數(shù)據(jù)成功時(shí)調(diào)用的回調(diào)函數(shù)。 什么是easyUI easyui是一種基于jQuery、Angular.、Vue和React的用戶界面插件集合。easyui為創(chuàng)建現(xiàn)代化,互動(dòng),JavaScr...

    yexiaobai 評(píng)論0 收藏0
  • EasyUI datagrid問(wèn)題整理

    摘要:什么是是一種基于和的用戶界面插件集合。為創(chuàng)建現(xiàn)代化,互動(dòng),應(yīng)用程序,提供必要的功能。是個(gè)完美支持網(wǎng)頁(yè)的完整框架。很簡(jiǎn)單但功能強(qiáng)大的。返回則取消該動(dòng)作。該函數(shù)有下列參數(shù)要傳遞到遠(yuǎn)程服務(wù)器的參數(shù)對(duì)象。當(dāng)檢索數(shù)據(jù)成功時(shí)調(diào)用的回調(diào)函數(shù)。 什么是easyUI easyui是一種基于jQuery、Angular.、Vue和React的用戶界面插件集合。easyui為創(chuàng)建現(xiàn)代化,互動(dòng),JavaScr...

    Kross 評(píng)論0 收藏0
  • 移動(dòng)端實(shí)現(xiàn)表頭固定,tbody滾動(dòng),三種方法

    摘要:實(shí)現(xiàn)表頭固定,垂直滾動(dòng)準(zhǔn)備工作獲取頁(yè)面可是區(qū)域高度屏幕旋轉(zhuǎn)觸發(fā)事件正常方向或者屏幕旋轉(zhuǎn)豎屏屏幕順時(shí)針旋轉(zhuǎn)或者逆時(shí)針旋轉(zhuǎn)橫屏方法一兩個(gè)思路第一個(gè)放表頭,第二個(gè)方內(nèi)容。 實(shí)現(xiàn)表頭固定,tbody垂直滾動(dòng)準(zhǔn)備工作: 獲取頁(yè)面可是區(qū)域高度 function setIframeHeight() { var screenHeight = document.documentElement.c...

    AlphaWallet 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<