私はサーバー側のデータでDataTableを使用して、複数のテーブル(詳細サブテーブル)を表示しています。サブテーブルには2つのタイプがあり、1つは3つのカラム、もう1つは7つのカラムです。DataTablesはサーバーデータを取得した後にaoColumnsを設定します
サーバからデータを取得した後、行が表示される前に値をaoColumns
に設定したいのですが、実行するのに苦労しています。ここまで私がこれまで持っていたことがあります。
self.createDataTable = function(identifier, source, rowCallback, initCallback) {
var columnsA = [
{ "mDataProp": "index", "sClass": "index", "bSortable": false },
{ "mDataProp": "text", "sClass": "top-dd", "bSortable": false },
{ "mDataProp": "stats", "sClass": "top-dd stats", "bSortable": false }
];
var columnsB = [
{ "mDataProp": "index", "sClass": "index", "bSortable": false },
{ "mDataProp": "check-box", "sClass": "check-box" },
{ "mDataProp": "foundDate", "sClass": "date" },
{ "mDataProp": "pageLink", "sClass": "link" },
{ "mDataProp": "linkText", "sClass": "text" },
{ "mDataProp": "ipAddress", "sClass": "ip" },
{ "mDataProp": "otherLinks", "sClass": "more dd-second-" + thisTR.id }
];
$(identifier).dataTable({
"bPaginate": false,
"bLengthChange": false,
"bFilter": false,
"bSort": true,
"bInfo": false,
"bAutoWidth": false,
"oLanguage": { "sEmptyTable": 'No patterns found' },
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": source,
"fnServerParams": function(aoData) {
aoData.push({ "name": "uniqueid", "value": self.uniqueid },
{ "name": "basedomain", "value": basedomain },
{ "name": "return_this", "value": $(this).data('returnid') });
},
"aoColumns": columnsA,
"fnRowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
return rowCallback(nRow, aData);
},
"fnInitComplete": function(oSettings, iStart, iEnd, iMax, iTotal, sPre) {
initCallback();
}
});
基本的に私は、サーバーからデータをキャッチし、サーバから渡された旗を見て、aoColumnsを設定し、通常通り継続したいと思います。何か案は?私はコールバック関数のhttp://datatables.net/usage/callbacksを見ていますが、Imはコールバックで一度カラムを設定するのが苦労しています。
私は次のことも読んでいますが、希望の結果が得られません。