注:私は2ではなく、ブートストラップ1を使用しています。
多くの試行錯誤の後、これが正しいタブがクリックされたとき、私はのdataTableを再描画するために取得するために追加された機能である(なしのいずれか、再描画不満):
$(function() {
$('a[href="#tab2"]').live('click', function() {
var oTable = $('#dataTables4').dataTable();
oTable.fnDraw();
});
});
ここに私のdataTableのコードがあります。テーブルが表示される前に完全に描画されることを確実にするコールバックに注意してください。
$('#loadingT').show();
$('#dataTables4').dataTable({
"fnDrawCallback":function(){
$('#loadingT').hide();
$(".dataListT").fadeIn(2000);
},
"bPaginate": false,
"bScrollCollapse": true,
"sScrollY": "305px",
"aaSorting": [[ 2, "desc" ],[3, "desc"]],
"sDom": "<'row'<'span16'f>>t<'row'i<'span8'><'span8'>>",
"aoColumns": [
{ "bSortable": false },
null,
null,
null,
null,
{ "iDataSort": 6 },
{"bVisible": false},
{"bVisible": false},
null
],
"fnFooterCallback": function (nRow, aaData, iStart, iEnd, aiDisplay) {
/* Calculate the total transactions on this page */
var total = 0;
for (var i=iStart ; i<iEnd ; i++)
{
total += aaData[ aiDisplay[i] ][7]* 1;
}
var nCells = nRow.getElementsByTagName('th');
nCells[1].innerHTML = total;
$(nCells[1]).formatCurrency({negativeFormat:'%s-%n'});
}
}).rowGrouping({
iGroupingColumnIndex: 1,
sGroupingColumnSortDirection: "desc",
iGroupingOrderByColumnIndex: 2
});
希望します。
はい、私はそれをしました。 DataTableが再レンダリング自体に不平を言うので、テーブルがまだレンダリングされているかどうかを検出するためのリギングを行う必要がありました。これは良いハックですが、解決策ではありません。ありがとう。 – Gregg
非ハックの解決策が表示されない限り、これを答えとしてマークします。 – Gregg