使用 ScrollY 时数据表标题的对齐问题

Posted

技术标签:

【中文标题】使用 ScrollY 时数据表标题的对齐问题【英文标题】:Alignment Problem with Datatable Header when use ScrollY 【发布时间】:2021-09-02 22:03:23 【问题描述】:

我的数据表标题对齐有问题。在我不使用 ScrollY 之前,一切都会好起来的。

在页面上,我有一个可以展开的侧导航栏。现在,当我展开侧导航栏并将内容区域向右移动时,表格标题会离开页面。

1. Table:
 <table  class="flex-fill flex-grow-1 table table-striped table-hover table-bordered " id="data_table" style="background:red ;width: 100%">
         <thead>
           <tr>    
              <th>Header-1</th>
              <th>Header-2</th>
              <th>Header-3</th>
              <th>Header-4</th>
           </tr>
         </thead>
         <tbody>
           <tr>
             <td>1</td>
             <td>2</td>
             <td>3</td>
             <td>4</td>             
           </tr>           
         </tbody>
        </table>


2. Script.

$(document).ready( function () 
   $('#data_table').DataTable( 
    paging: true,
    ordering:false,
    scrollY:315,
    scrollCollapse:true,
    scrollX:true
   );
);


html 视图

【问题讨论】:

【参考方案1】:

你在使用 css 引导程序吗?

请尝试使用以下脚本

HTML

<div class="table-responsive">
  <table class="flex-fill flex-grow-1 table table-striped table-hover table-bordered" id="data_table" style="background:red ;width: 100%">
    <thead>
      <tr>
        <th>Header-1</th>
        <th>Header-2</th>
        <th>Header-3</th>
        <th>Header-4</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
        <td>4</td>
      </tr>
    </tbody>
  </table>
</div>

Javascript

在数据表启动后添加下面的脚本

table.columns.adjust().draw();

脚本会是这样的

$(document).ready(function () 
  var table = $("#data_table").DataTable(
    paging: true,
    ordering: false,
    scrollY: 315,
    scrollCollapse: true,
    scrollX: true
  );

  table.columns.adjust().draw();
);

示例:codepen

【讨论】:

我试过了,你的建议,但问题还是一样。请参阅codepen.io/adiicmp/pen/abJMEdz 现在单击复选框。这就是我试图解释的。当侧边菜单折叠并将内容区域向右移动时,标题将超出页面。 @Aditya 如果您的数据表没有使用 FixedColumns,只需删除 ScrollY,并使用标签 div table-responsive。检查这个:codepen.io/mocfaisal/pen/xxqebaO 我必须使用 scrollY 因为我想为数据表提供一个固定的高度,并且所有的记录都会反映在那个特定的固定高度框架框中。如果没有 Scroll Y,用户需要滚动页面。这就是 ScrollY 很重要的原因。

以上是关于使用 ScrollY 时数据表标题的对齐问题的主要内容,如果未能解决你的问题,请参考以下文章

数据库 Jquery - 使用 ScrollY 时列标题未对齐

使用“scrollY”时无法让 DataTables 标题行对齐

JQuery DataTable 标头未与 ScrollY 和服务器端处理对齐

数据表列标题对齐问题

Jquery数据表标题与正文不对齐

Jquery DataTable列顺序未与固定标题对齐[重复]