Jquery 数据表在其上隐藏列';他自己的

Jquery 数据表在其上隐藏列';他自己的,jquery,datatables,Jquery,Datatables,可能导致我的列被隐藏/压缩的原因。在该行旁边放一个加号。很抱歉,我不确定这是用来检查datatables站点的 在显示模式后,调用column adjust来修复标题后会发生这种情况 var dtUsers = $('#table-user-results').DataTable({ scrollY: "40vH", scroller: true, responsive: true }); $(document).on(

可能导致我的列被隐藏/压缩的原因。在该行旁边放一个加号。很抱歉,我不确定这是用来检查datatables站点的

在显示模式后,调用column adjust来修复标题后会发生这种情况

    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>

名称
电子邮件
角色
@foreach(模型中的var用户)
{
@user.LastName,@user.FristName
@用户邮箱
@user.RoleName
}
问题更新

因此,当没有足够的数据需要滚动条时,就会触发该问题。

您使用的扩展在列不适合视图时隐藏列

但是,如果在模式窗口中显示该表,响应扩展可能会错误地检测列宽,因为该表最初是隐藏的

解决方法是除了使用
columns.adjust()
之外,还使用API方法

因为您使用的是Scroller扩展,所以还需要调用API方法

请参阅下面的代码:

$(document).on('shown.bs.modal', '#list-manage-users-modal', function (){
    $($.fn.dataTable.tables(true)).DataTable()
       .columns.adjust()
       .responsive.recalc()
       .scroller.measure();
});
您还需要包括
scrollCollapse:true
选项,因为这两个扩展中似乎存在不兼容错误。有关更多详细信息,请参阅


有关代码和演示,请参阅。

HA。。。谢谢,奇怪的是,当我取下它时,它正好合适。@Tsukasa,这是一个很好的扩展,我不会取下它。我添加了关于为什么它隐藏列和解决方法的解释。为了让它正常工作,我必须在这里添加true
$(“#表用户结果”)。DataTable(true,{
带有responsive.recalc。否则,标题将仍然显示2,但行将显示3列,但第3列是透明的,因为可以看到列在那里但为空。@Tsukasa,我发现jQuery DataTables存在问题。根据您的案例,您需要使用
scrollCollapse:true
。请参阅demons答案中的示例最后!它将在下一版本中发布/