我正在使用7列的响应式数据表。看到它在其模板内(它是较大的表):http://darasu.xyz/DatatableExample/datatable-ex.html
我正在使用的是从这里: https://datatables.net/extensions/fixedheader/examples/integration/responsive-bootstrap.html
我希望所有列始终显示在桌面上。有足够的空间,而且我不喜欢默认显示的可扩展“ +”按钮。
似乎只允许跨越6列。如果在较小的视口上观看,则第7行将被强制使用自己的可扩展行。 如何在台式机上查看所有行,但在较小的查看端口上保持响应? 如果是jQuery数据表,默认的6列是默认值吗?如果可以,我可以将其更改为7列吗?
在阅读了数据表文档之后,我尝试了各种类来更改断点,如下所示:https://datatables.net/extensions/responsive/classes
这是一个挑战,因为当我在台式机上获得所需的表后,该表会适应我不需要的较小视口中的行为。示例:类“ all”将强制第7列在所有屏幕上可见,而我不希望如此。 “最小桌面”将强制第7列在桌面或更大的桌面上可见,但将隐藏另一列以进行补偿。对于其他断点类或数据优先级选项也可以这样说:https://datatables.net/extensions/responsive/priority
我使用这些选项获取所需桌面表格的次数越多,在较小的视口上显示效果越差。
我尝试了花哨的解决方法,例如强制所有数据显示:
$(document).ready(function() {
var table = $('#condolistings').DataTable( {
responsive: {
details: false
}
} );
然后分配表引导程序类,这些类将我的表隐藏在较小的视口中:“ d-none d-xl-block d-lg-block”,然后添加第二个响应表,该表隐藏在具有类的桌面上: -lg-n d-xl-none”。它起作用了,但是我的边界在视觉上被“ block”类弄乱了,所以它不可用。 (请参阅:https://i.imgur.com/hIfHUfz.png)
代码:
<table id="condolistings" class="table table-bordered datatable-font nowrap" style="width:100%;">
<thead>
<tr>
<th><strong>Unit</strong></th>
<th><strong># Bed</strong></th>
<th><strong># Bath</strong></th>
<th><strong>Sq Ft</strong></th>
<th><strong>Price</strong></th>
<th><strong>Brokerage</strong></th>
<th><strong>Favourite?</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>#703</td>
<td>2</td>
<td>2</td>
<td>743</td>
<td>$628,000</td>
<td>Luxmore Realty</td>
<td><a class="colored-link" href="#">Add</a></td>
</tr>
<tr>
<td>#602</td>
<td>2</td>
<td>2</td>
<td>827</td>
<td>$649,000</td>
<td>Macdonald Realty Westmar</td>
<td><a class="colored-link" href="#">Add</a></td>
</tr>
<tr>
<td>#1502</td>
<td>2</td>
<td>2</td>
<td>1103</td>
<td>$849,000</td>
<td>Coldwell Banker Westburn Rlty</td>
<td><a class="colored-link" href="#">Add</a></td>
</tr>
<tr>
<td>#1701</td>
<td>3</td>
<td>2</td>
<td>1265</td>
<td>$978,000</td>
<td>Regent Park Realty Inc.</td>
<td><a class="colored-link" href="#">Add</a></td>
</tr>
<tr>
<td>#2402</td>
<td>3</td>
<td>3</td>
<td>1637</td>
<td>$1,308,000</td>
<td>RE/MAX Central</td>
<td><a class="colored-link" href="#">Add</a></td>
</tr>
</tbody>
</table>
$(document).ready(function() {
var table = $('#condolistings').DataTable( {
responsive: true,
"paging": false,
"searching": false,
"info": false
} );
new $.fn.dataTable.FixedHeader( table );
} );
从Bootstrap 4中提取的CSS文件。
答案 0 :(得分:0)
响应式具有三种操作模式,用于控制表中列的可见性:
- 自动-响应式将自动确定是否应显示一列
- 手册-您可以在其中告诉响应式在哪些屏幕尺寸上显示哪些列。
- 优先级-使用
columns.responsivePriority
告诉响应式哪些列应被赋予可见性优先级。
当您不为列分配类时,DataTables将自动确定是否应显示列。因此,如果要强制在较大的屏幕上显示所有列,则需要为所有列分配类(desktop
,min-desktop
或all
)。
我认为没有一种在较小的屏幕上切换到自动模式的好方法,因此您需要考虑要在较小的屏幕上显示哪些列并使用适当的类。
例如,使用以下标记,前三列将显示在所有设备上,后三列将显示在台式机(> 1024px)设备上。
<thead>
<tr>
<th class="all">Name</th>
<th class="all">Position</th>
<th class="all">Office</th>
<th class="desktop">Age</th>
<th class="desktop">Start date</th>
<th class="desktop">Salary</th>
</tr>
</thead>
有关代码和演示,请参见this example。