Bootstrap-Table:如何隐藏列而不从DOM中删除它?

问题描述 投票:0回答:3

我在使用Bootstrap-Table插件时遇到问题:https://github.com/wenzhixin/bootstrap-table

我需要隐藏的表中有一个隐藏的ID列。但我不能这样做

<th data-field="id" data-visible="false">ID</th> 

因为它会从DOM中删除它。我需要将ID保留在DOM中,因为它在表单提交中使用。它只需要隐藏。

这也不起作用,我的样式丢失,列不存在:

<th data-field="id" style="display:none;>ID</th>

我甚至无法使用jQuery手动隐藏列!换句话说,我在onPostBody之后尝试了以下内容,它也从未解雇过!

<table id="delegateTable"  data-toggle="table" data-url="delegates.action"
 data-response-handler="delegatesResponseHandler">
   <thead>
        <tr>
           <th data-field="id">ID</th>
           <th data-field="delegate" style="width:10%">Delegate</th>
   </thead>
</table>

jQuery Doc OnReady:

$(document).ready(function() {

    // Hide column
    $('#delegateTable').bootstrapTable({
        onPostBody : function() {
            $('#delegateTable td:nth-child(0), th:nth-child(0)').hide();
            alert('column hidden');                 
        }
    });

它永远不会到达onPostBody。

jquery bootstrap-table
3个回答
2
投票

最好的选择是

更改数据字段以添加类

<th class="col-xs-1" data-class='hidden' data-field="stargazers_count">Stars</th>

当然还有隐藏班级的CSS

.hidden{
  display:none;
  visibility:hidden;
}

https://jsfiddle.net/yhtgfawj/7/


1
投票

你几乎做对了,问题是你的jQuery选择器是错误的。

Css的:nth-child不是从0开始;)

这将有效:

$('#delegateTable').bootstrapTable({
    onPostBody : function() {
        $('#delegateTable').find('th:nth-child(1), tr td:nth-child(1)').hide();
        alert('column hidden');                 
    }
});

this example.

你也可以用CSS替换这个javascript:

#delegateTable th:nth-child(1), #delegateTable tr td:nth-child(1){
  display: none;
}

0
投票

使该列具有width:0; overflow:hidden;这将隐藏列并仍然在DOM中。

© www.soinside.com 2019 - 2024. All rights reserved.