2016-08-05 139 views
2

什麼可能導致我的列被隱藏/壓縮。一個加號放在行的旁邊。對不起,我不確定這是什麼被調用來檢查數據表站點。datatables自己隱藏列

enter image description here

它調用列調整以固定頭一旦被示出的模態後會發生。

var dtUsers = $('#table-user-results').DataTable({ 
     scrollY: "40vH", 
     scroller: true, 
     responsive: true 
    }); 

    $(document).on('shown.bs.modal', '#list-manage-users-modal', function() { 
     dtUsers.columns.adjust().draw(); 
    }); 

<table id="table-user-results" class="table table-striped table-bordered table-hovered dataTable"> 
       <thead class=""> 
        <tr> 
         <th>Name</th> 
         <th>Email</th> 
         <th>Role</th> 
        </tr> 
       </thead> 
       <tbody> 
        @foreach (var user in Model) 
        { 
         <tr id="@user.ID" class="@(!user.Email.Equals(User.Identity.Name, StringComparison.InvariantCultureIgnoreCase) ? "user-results-context" : "")"> 
          <td>@user.LastName, @user.FristName</td> 
          <td>@user.Email</td> 
          <td>@user.RoleName</td> 
         </tr> 
        } 
       </tbody> 
      </table> 

問題更新

因此,當沒有足夠的數據,需要滾動條問題被觸發。

回答

3

您使用的是Responsive擴展名,它們在不適合視圖時隱藏列。

但是,如果您在模式窗口中顯示錶格,響應擴展可能會錯誤地檢測列寬,因爲表最初是隱藏的。

解決方案是除columns.adjust()之外還使用responsive.recalc() API方法。

由於您使用Scroller擴展名,因此還需要調用scroller.measure() API方法。

請參見下面的代碼:

$(document).on('shown.bs.modal', '#list-manage-users-modal', function(){ 
    $($.fn.dataTable.tables(true)).DataTable() 
     .columns.adjust() 
     .responsive.recalc() 
     .scroller.measure(); 
}); 

你也需要包括scrollCollapse: true選項,似乎有在這兩個擴展一個不兼容錯誤。有關更多詳細信息,請參見issue #854 on GitHub

請參閱this example瞭解代碼和演示。

+0

HA ......謝謝,奇怪的是,當我刪除它時,它恰到好處。 – Tsukasa

+0

@Tsukasa,這是一個很棒的擴展,我不會刪除它。我添加了解釋爲什麼它隱藏了列和解決方法。 –

+0

爲了使這個工作正常,我不得不在這裏添加'$('#table-user-results').DataTable(true,{'with responsive.recalc。否則頭文件仍然會顯示2,但行會顯示3列,但第三個透明,能夠看到列在那裏,但空。 – Tsukasa

相關問題