我敢肯定,這是可能的一些如何,但我在做什麼是行不通的。DataTables隱藏一列,並顯示另一個
$('#campaign_creative_performance-table #show_thumb').change(function() {
var show = ($(this).is(':checked')) ? true : false,
oTable = $('#campaign_creative_performance-table table.sortable').dataTable();
oTable.fnSetColumnVis(14, show ? false : true);
oTable.fnSetColumnVis(15, show);
});
這應該是隱藏欄14和顯示欄15,反之亦然。
它正在做的是交換列標題和更改列的寬度,但內容不變。
我試過把第一個重繪標誌,但沒有改變。
附加信息: 我通過sAjaxSource獲取數據並通過fnRowCallback對其進行格式化。 對於那些兩列的格式如下:
$('td:eq(14)', nRow).html('<p class="limit160" title="'+aData[14]+'">'+aData[14]+'</p>');
$('td:eq(15)', nRow).html('<img src="'+aData[15]+'" />');
進一步調查 的問題是,在fnRowCallback進行格式化。隱藏第14列,使15變成14,因此數據是從數據14中獲得的,而不是15。因此,需要進行某種格式化測試,以確定它實際在做什麼列...或者不要使用$ ('td:eq(14)')來確定列。我只是不知道該怎麼做。
它不工作的簡化示例是http://jsfiddle.net/NbSCb/ 注意當點擊'click me'時,col3的數據不正確。
有無你試過在最後一個'fnSetColumnVis'後面調用'oTable.dataTable();'? – KRyan
你可以完成刪除'?順便說一句,第二行是true:false。 – Blazemonger