我的程序中有一个数据表。我希望它可以水平滚动,所以我做的就像这样:
var tableI = $('#table_data').DataTable({
"bLengthChange": false,
"scrollX": true,
"dom": 'frtp'
});
它是这样的(作为样本输出):
标题增加了一倍。我该怎么解决这个问题?
编辑: 这是另一个例子:
这是我的HTML代码:
<table class="table table-striped" id="act_data" width="100%"> <div style="float:left;width:385px" >
<button type="button" id="edit_acc" class="btn btn-primary" data-toggle="modal" data-target="#editAcc"><span class=" fa fa-edit "> Edit Account</span></button>
<button type="button" id="de_act" class="btn btn-primary" data-toggle="modal" data-target="#DeAcc"><span class=" fa fa-edit "> Activate/Deactivate</span></button>
<!-- <button type="button" id="refresh" class="btn btn-link" data-target="#DeAcc"><span class="fa fa-refresh"></span></button>-->
<a href="<?php echo site_url('admin/homeAdmin/homepage')?>?id=6" class="btn btn-link"><span class="fa fa-refresh"></a>
</div><thead class="header">
<tr class="well">
<th style="font-size: 14px;">Employee ID#</th>
<th style="font-size: 14px;">Username</th>
<th style="font-size: 14px;">Account Type</th>
<th style="font-size: 14px;">Status</th>
</tr>
</thead>
<tbody>
<?php if($result != NULL){?>
<?php foreach($result as $row){ ?>
<tr>
<td style="font-size: 15px;padding-left: 20px;">
<?php echo $row->employeeID;?>
<input type="hidden" name="userID" id="userID" value="<?php echo $row->userID;?>" />
<input type="hidden" name="pass" id="pass" value="<?php echo $row->password;?>" />
</td>
<td style="font-size: 15px;padding-left: 20px;">
<?php echo $row->username;?>
</td>
<td style="font-size: 15px;padding-left: 20px;">
<?php echo $row->usertype;?>
</td>
<td style="font-size: 15px;padding-left: 20px;">
<?php echo $row->status; ?>
</td>
</tr>
<?php }?>
<?php }?>
</tbody>
</table>
答案 0 :(得分:12)
我和firefox&amp;有同样的问题firefox开发者版。根本原因是,当我们设置scrollX:true
时,datatable会添加一个额外的div,其中包含一个表和一个标题,除了表格和表格之外。标头已经构建。这是为了在表格效果中滚动。
Datatable,尝试将高度设置为0px,以隐藏它。有些浏览器没有正确解释这一点。
<tr style="height: 0px;" role="row">
要隐藏它,将此行的样式更改为“隐藏”将破坏表的结构。有visibility:'collapse'
示例数据表配置:
tableElement.DataTable({
"scrollX": true,
"initComplete": function(settings, json) {
$('.dataTables_scrollBody thead tr').css({visibility:'collapse'});
}
//other datatable configurations...
});
因为它是一张桌子,我们需要具有可见性:'崩溃'而不是可见性:'隐藏' - 关于visibility css property的更多信息
答案 1 :(得分:8)
解决方案1:
解决此问题请使用"scrollXInner": true
避免使用"scrollX": true"
var tableI = $('#table_data').DataTable({
"bLengthChange": false,
"scrollX": true, //Do Not Use This (Remove This Line)
"scrollXInner": true //Use This (Add This Line)
"dom": 'frtp'
});
解决方案2:
或者您可以添加此CSS
.dataTables_scrollBody thead tr[role="row"]{
visibility: collapse !important;
}
答案 2 :(得分:3)
我在Google Chrome上遇到了同样的问题。这是修复:
.dataTable(
{
"processing": false,
"serverSide": false,
"autoWidth": true,
"columnDefs": [
{"orderable": false, "targets": [5, 6]}
],
"order": [1, 'asc'],
"dom": 'l<"toolbar">frtip',
drawCallback: function () { // this gets rid of duplicate headers
$('.dataTables_scrollBody thead tr').css({ display: 'none' });
},
scrollY: '65vh',
scrollCollapse: true,
paging: false
});
答案 3 :(得分:1)
赛拉姆的好解释。更好的方法是只使用CSS
div.dataTables_scrollBody thead {
display: none;
}
答案 4 :(得分:1)
就我而言,解决方案很简单。只需在您的CSS中添加它即可:
import java.util.{List => JList, ArrayList => JArrayList}
@Configuration
@ConfigurationProperties("kafka")
class AppConfig {
@BeanProperty
var bootstrapServers: JList[String] = new JArrayList[String]
def getBootStrapServer: JList[String] = bootstrapServers
}
答案 5 :(得分:0)
尝试这样的事情:
“scrollX”:'100%',
“scrollXInner”:'125%',
答案 6 :(得分:0)
这对我有用:
$('#DataTables_Table_0').on( 'draw.dt' function() {
$('.dataTables_scrollBody thead tr').addClass('hidden')
}
答案 7 :(得分:0)
最好的方法是使用
dataTable.columns.adjust();
在初始化/绘制回调上
答案 8 :(得分:0)
这将隐藏第二个标题,并删除标题和正文之间的空白。
<style>
.dataTables_scrollBody thead tr {
visibility: collapse;
}
.dataTables_scrollBody {
margin-top: -10px;
}
</style>
答案 9 :(得分:0)
在 Javascript 文件中的行下方添加。 serverSide: true, processing: true, scrollX : "100%", 将下面的代码添加到您的页面。 .dataTables_scrollBody thead tr[role="row"]{ 可见性:折叠 !important;
答案 10 :(得分:-1)
您可以在CSS中使用以下代码:
div.dataTables_scrollHeadInner table { margin-bottom: 0px !important; }