隐藏jQuery数据表中的列?
我想隐藏jQuery DataTables
中的一列,其中包含地理区域的th
。这是我在做什么:隐藏jQuery数据表中的列?
$(document).ready(function(){
if(geo_zone_on_off==0){
var _index=$("#datatable_ajax .heading th:contains(GeoZone)").index();
var oTable=$("#datatable_ajax").DataTable();
if(_index != -1){
oTable.column(_index).visible(false);
}
}
});
DataTable中加载但列没有得到隐藏。 在做这件事之前,我尝试在表格呈现时隐藏它,它工作正常。然后我做的是:
"initComplete": function(settings, json) {
if(geo_zone_on_off==0){
var _index=$("th.sorting:contains(GeoZone),th.no-sort:contains(GeoZone)").index();
if(_index != -1){
grid.getDataTable().column(_index).visible(false);
}
}
},
但它有一个问题,它显示加载表时隐藏的列。为了避免这个问题,我使用了第一个提到的解决方案。但它不起作用,虽然我的索引正确。它不会给出任何错误。
您想要隐藏一个包含地理区域的列。
尝试是这样的
$('table').DataTable();
$('button').on('click',function(){
$('th').each(function(i,e){
if($(this).text()=='No') {
$(this).hide();
$('tr').each(function(){
$(this).find('td').each(function(index,element){
if(index==i) {
$(this).hide();
}
});
});
}
});
});
见demo
获取DataTable对象
var table = $('#table').DataTable();
获得列的目标改变的知名度
var target = //Get target of column to hide for eg for third column target = 2
var column = table.column(target);
Alt键呃知名度
column.visible(false);
它不要有那么复杂。简单地给列name
。为什么不在初始化时设置visible
状态? :
columnDefs: [
{ targets: <index>, name: 'geozone', visible: geo_zone_on_off == 1 }
]
然后,以后,您可以更改引用列名的知名度:在列选择
table.column('geozone:name').visible(false);
或
table.column('geozone:name').visible(geo_zone_on_off == 1);
问题是隐藏的列在加载数据表时显示。 @davidkonrad – Anonymous
@Anonymous,如果在'columnDefs'或'columns'中设置'visible:false',则不是。 – davidkonrad
不工作是一种描述错误的常用方式,can你更清楚地表达自己? – Icepickle
@Ippickle我应该如何阐述它?虽然我有数据表对象,列索引,并且我正在使用它们,但我还应该解释哪些内容? – Anonymous
你有没有打算展示该专栏?如果不是为什么画它呢? – bluehipy