<address id="ttjl9"></address>

      <noframes id="ttjl9"><address id="ttjl9"><nobr id="ttjl9"></nobr></address>
      <form id="ttjl9"></form>
        <em id="ttjl9"><span id="ttjl9"></span></em>
        <address id="ttjl9"></address>

          <noframes id="ttjl9"><form id="ttjl9"></form>

          Datatables表格固定列 dataTable.fixedColumns.js的使用和修復 - 完美解決ICheck不能勾選問題

          2021-7-9    前端達人

          前言

          在項目實際開發我們會遇到表格列過多,表格內容過長的困擾,表格數據的展現很不理想,今天我為大家介紹如何結合Datatables 使用表格固定列;

          效果展示

          1、在屏幕足以展現內容的情況下
          在這里插入圖片描述
          2、模擬屏幕過小 或表格列過多的情況
          在這里插入圖片描述
          從效果圖可以看出,我將左側兩列和右側一列 作為固定列 ,中間內容可拖動顯示

          開始使用

          //引入juqery datables fixedColumns 根據各自的樣式需求 本人使用的是bootstrap 
          <link href="您的資源目錄/dataTables.bootstrap.css" rel="stylesheet">
          <link href="您的資源目錄/fixedColumns.bootstrap.css">
          <script src='您的資源目錄/jquery.js'></script>
          <script src='您的資源目錄/jquery.dataTables.min.js'></script>
          <script src='您的資源目錄/dataTable.fixedColumns.js'></script> 
          
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6

          初始化datatables

          //異步請求獲取表格渲染數據
          var dataTable;
          $(function () {
              dataTable = $('#表格ID')..DataTable({
                      "processing": true,
                      "serverSide": true,
                      "ajax": {url:  "您的請求URL"},
                      "scrollX": true,
                      "autoWidth": true,
                      "columns": [
                      ...
                      ]
              });
          }) 
          
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 12
          • 13
          • 14

          初始化fixedColumns

          new $.fn.dataTable.FixedColumns(dataTable,{
              "iLeftColumns":2,  //開啟左側兩列固定
              "iRightColumns":1, //開啟右側1列固定
              "drawCallback": function(){
                  //重繪的回調執行
              }
          }); 
          
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7

          原理解析

          在datableas 初始化后 根據設定的開啟固定列,獲取datables 對應表格數據 進行復制,然后采用position: absolute 在原表格 上加多一層固定列表格的展現,感興趣的朋友可以瀏覽器DEBUG查閱;

          出現的問題

          1、固定列出現滾動條
          在這里插入圖片描述
          出現這個問題是 dataTable.fixedColumns.js 插件計算固定列寬的問題,可以在源碼進行修改;或者在fixedColumns.js 重繪成功后回調中執行

          $(".DTFC_Cloned").css("width","auto"); 
          
          • 1

          2、采用ICheck 插件無法點擊 和 勾選問題

          原因:因為異步加載數據的問題 ,我們每次在datables重繪的回調函數中 進行ICheck 再次初始化;
          而dataTable.fixedColumns.js 是 datables 初始化完成后才執行的 ,上文也提到固定列實現的原理,其復制了固定列數據 position: absolute,那么展現給我們看到的是已經初始化的ICheck ,真正可以勾選點擊的其實在下一層;

          解決思路:在fixedColumns.js 重繪成功后回調中初始化ICheck; 再重新注冊全選 和反選事件;

          //朋友們可以根據需求 自定定義自己的初始化和事件注冊
          new $.fn.dataTable.FixedColumns(dataTable,{
              "iLeftColumns":2,
              "iRightColumns":1,
              "drawCallback": function(){
                  //重繪Icheck 這里是我封裝的初始化方法
                  iCheckInitFunction();
                  //重新設置全選事件 這里是我全選/反選的注冊事件
                  TableiCheck(".DTFC_Cloned thead tr th input.i-checks", ".DTFC_Cloned tbody tr td input.i-checks");
              }
          }); 
          
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11

          修復版的 dataTable.fixedColumns.js 下載

          大家可以選擇適合自己的樣式
          在這里插入圖片描述

          藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼藍小助,報下信息,藍小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

          截屏2021-05-13 上午11.41.03.png


          分享此文一切功德,皆悉回向給文章原作者及眾讀者.

          免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務


          日歷

          鏈接

          個人資料

          藍藍設計的小編 http://www.syprn.cn

          存檔

          亚洲va欧美va天堂v国产综合