2017-08-08 1 views
0

私は現在、AJAX経由でREST APIエンドポイントからのデータをロードするテーブルを持っている:のDataTableの列を描画する前にデータを操作するjQueryのライブラリ

$(document).ready(function() { 
    var table = $('#pendingTable').DataTable({ 
     ajax: { 
      type: "GET", 
      url: url + '/rest/endpoint, 
      dataSrc: "_deployments" 
     }, 

    columns: [ 
     { data: "service_name" }, 
     { data: "git_organization" }, 
     { data: "id" }, 
     { data: "timestamp" }, 
     { data: "username" }, 
     { data: "environment" }, 
     { data: "site" }, 
     { data: "status" } 
    ], 
    fnCreatedRow: function(nRow, aData, iDataIndex) { 
     $(nRow).attr('onclick', "openModal(" + aData["id"] + ")"); 
    }, 
    order: [ 
     [2, 'sc'] 
    ] 
}); 
$('.table-responsive').css('opacity', '0').fadeTo(500, 1, 'swing'); 
$('#pendingTable_filter input').attr("placeholder", "by User, Org & More"); 
}); 

私はDataTables.netのドキュメントを模索してきたが、決定問題を抱えていますテーブルが描画される前に、「タイムスタンプ」データを操作する(つまり、適切な日付にフォーマットする)ための最善のアクションコースです。

APIには、繰り返し、列、またはその両方を実行できる個々のセルを変更する機能があります。このタイムスタンプをフォーマットするにはどうすればいいですか? (値はミリ秒を表す単なる文字列です)。何らかの形式のコールバックが必要か、テーブルが既に描画された後にデータを操作する必要がありますか?

いずれの例も高く評価されます。私が試したことの例を私には提供していないという謝罪、それの大部分は私が思っていたことをしていない擬似コードでした。

+0

使用することができますcolumnDefsはレンダリングhttps://datatables.net/examples/advanced_init/column_render.html – charlietfl

答えて

2

これは私がrenderを使って行った方法です。表示される前にデータを操作することができます。

{ data: "id" }, 
{ 
    'render': function (data, type, full, meta) { 
     var date = new Date(parseInt(data.substr(6), 0)); 
     return ISODateString(date); 
    } 
}, 
{ data: "username" }, 

私は、タイムスタンプの日付、月、年の部分を返しますISODateStringという関数を(必要であれば、明らかにあなたは、時間の部分を返すことができます)を作成。

function ISODateString(d) { 
    function pad(n) { return n < 10 ? '0' + n : n } 
    return pad(d.getDate()) + '/' + pad(d.getMonth() + 1) + '/' + d.getFullYear(); 
} 
+0

私は必要なもの、ありがとう! – Lukon

関連する問題