Jquery datatable 動態隱藏列(根據有無值)

來源:互聯網
上載者:User

標籤:控制   als   data   set   .com   pre   標誌位   else   前端   

一情境:

前端利用datatable初始化的時候會向後端調用資料,需求是 要動態使某一列根據傳回來的一個標誌位是否有值來決定顯示與否

這是當前傳回值有活動優惠幅度的情況下

 

這是沒有活動優惠的情況下

 

可以發現【活動優惠幅度】這一列都被隱藏了

 

 

二、實現方法及原理

  

實現難度:datatable是js動態產生結果集也就是(<tr><td>),也就是說我們無法在html的標籤中手動的加入id或者class

實現過程:在 "columns":[] 的當前列之中 如  {orderable: false,sClass:"hiddenCol",data:‘name‘} 在name這一列中加入 sClass:"hiddenCol" ,這個屬性會給當前列的td 以及之前我們定義好的列名都加上這個class

              加上了class之後我們就可以當前class的css的顯示與否了

              我們需要在datatable的初始參數中加入

  dataTable: {
    "initComplete": function(settings, json) {                        },"columns": [{....}]
}

 

     initComplete是datatable初始化彎沉之後執行的方法 ,並且傳入了settings和json(伺服器返回的全部資料,可以用console.log(json)來查看格式)

     在這個方法中就可以來判斷伺服器傳回來的值有沒有活動,然後來通過class來控制是否顯示了,下面付上我的方法,我把我的很多的商務邏輯代碼刪了,這樣更直觀一些

dataTable: {                    "ajax": {                        "url": "",                        type: ‘GET‘,                        "dataType": ‘json‘                    },                    "initComplete": function(settings, json) {                        var data = json.data;                        if (data.length>0){                            var name = data[0].name;                            if (name==""||name==undefined){                                $(".hiddenCol").css("display","none");                            }                        }else{                            $(".hiddenCol").css("display","none");                        }                    },                    "columns": [                        {                           .....                        }                        ,                        {orderable: false,sClass:"hiddenCol",data: ‘name‘}                                              ]          }                   

 

Jquery datatable 動態隱藏列(根據有無值)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.