代码之家  ›  专栏  ›  技术社区  ›  Pasindu Jayanath

如何解决DataTables表头列宽与表体列宽有时不匹配的问题?

  •  2
  • Pasindu Jayanath  · 技术社区  · 8 年前

    下列的使用js文件。

    • jquery。数据表。min.js(数据表1.10.16)。
    • 数据表。独自创立min.js(DataTables Bootstrap 3集成)。
    • 数据表。反应敏捷的最小js(响应2.2.1)。
    • 数据表。滚动条。min.js(滚动条1.4.4)。

    下列的使用css文件。

    • jquery。数据表。最小css
    • 数据表。独自创立最小css
    • 反应敏捷的数据表。最小css
    • 滚动条。数据表。最小css

    以下是表格布局:

    <table class="table table-responsive table-bordered table-striped table-hover" id="tbl-cat-lvl-two" style="width:100%">
        <thead>
            <tr>
                <th>ID</th>
                <th>Code</th>
                <th>Icon</th>
                <th>Category Label</th>
                <th>Precedence</th>
                <th>Visibility</th>
                <th>Actions</th>
            </tr>
        </thead>
        <tbody>
        </tbody>
    </table>
    

    以下是表格脚本:

    catLvl2table = $('#tbl-cat-lvl-two').DataTable( {
        "processing"    : true,
        "serverSide"    : true,
        "order"         : [[ 4, "asc" ]],
        "responsive"    : true,
        "scrollY"       : "236px",
        "scrollCollapse": true,
        "ajax"          : {
            "url"       : baseUrl+getCatLvl2DataUrl+lvl1CatId,
            "type"      : "POST"
        },
        "columnDefs"    : [
            { "visible"     : false, "targets": [0] },
            { "orderable"   : false, "targets": [0, 2, 5, 6] },
            { 
                className: "align-center check-align-center",
                "targets": [6],
                "render"    : function (data, type, full, meta){
                    let id = full.id;
                    return `<button href="" class="btn btn-sm btn-info dt-btn-view" data-id="${id}"><i class="fa fa-eye"></i></button><button href="" class="btn btn-sm btn-primary dt-btn-edit" data-id="${id}"><i class="glyphicon glyphicon-pencil"></i></button><button href="" class="btn btn-sm btn-danger dt-btn-del" data-id="${id}"><i class="glyphicon glyphicon-trash"></i></button>`;
                } 
            }
        ],
        "columns": [
            { "data": "id" },
            { "data": "code" },
            { "data": "icon" },
            { "data": "category" },
            { "data": "precedence" },
            { "data": "visibility" },
        ],
    });
    

    以下是输出: enter image description here

    1 回复  |  直到 8 年前
        1
  •  2
  •   Chanaka Hettiarachchi    8 年前
    <table class="table table-responsive table-bordered table-striped table-hover" id="tbl-cat-lvl-two" style="width:100%">
        <thead>
            <tr>
                <!-- <th>ID</th> --> //Remove completely this column
                <th>Code</th>
                <th>Icon</th>
                <th>Category Label</th>
                <th>Precedence</th>
                <th>Visibility</th>
                <th>Actions</th>
            </tr>
        </thead>
        <tbody>
        </tbody>
    </table>
    

    只需从“columnDefs”数组中删除以下代码。

    { 
        className: "align-center check-align-center",
        "targets": [6],
        "render"    : function (data, type, full, meta){
            let id = full.id;
            return `<button href="" class="btn btn-sm btn-info dt-btn-view" data-id="${id}"><i class="fa fa-eye"></i></button><button href="" class="btn btn-sm btn-primary dt-btn-edit" data-id="${id}"><i class="glyphicon glyphicon-pencil"></i></button><button href="" class="btn btn-sm btn-danger dt-btn-del" data-id="${id}"><i class="glyphicon glyphicon-trash"></i></button>`;
        } 
    }
    

    并添加此代码:

    "columns": [
            { "data": "code" },
            { "data": "icon" },
            { "data": "category" },
            { "data": "precedence" },
            { "data": "visibility" },
            { "data" : null,
                className : "align-center" // You should style for this class
            }
    ],
    "rowCallback": function(row, data, index) {
        $('td:eq(5)', row).html(
            '<button href="" class="btn btn-sm btn-info dt-btn-view" data-id="'+data.id+'"><i class="fa fa-eye"></i></button>'+
            '<button href="" class="btn btn-sm btn-primary dt-btn-edit" data-id="'+data.id+'"><i class="glyphicon glyphicon-pencil"></i></button>'+
            '<button href="" class="btn btn-sm btn-danger dt-btn-del" data-id="'+data.id+'"><i class="glyphicon glyphicon-trash"></i></button>'
        );
    },
    

    在外部css类中

    .align-center {
      text-align: center; // whatever you want
    }
    
    推荐文章