2016-11-09 27 views
1

データをサーバ側の処理モードで使用して、データをバッチに非同期でロードしようとしています。これは大量のデータセットに役立つ非常にです。ドキュメントは十分明確ですが(https://datatables.net/examples/data_sources/server_side.html)、私はGoogle Apps ScriptとそのHTMLServiceで実装する方法を検討するのに苦労しています。Google Apps ScriptでDatatablesのサーバー側処理を使用する方法

$(document).ready(function() { 
    google.script.run.withSuccessHandler(loadLogList).getLogList(); 
}); 

function loadLogList(data) { 
    if (data) { 
    for (var i = 0; i < data.length; i++) { 
     htmlString += "<tr><td>" + data[i][0] + "</td>"; 
     htmlString += "<td>" + data[i][1] + "</td>"; 
     htmlString += "<td>" + data[i][2] + "</td>"; 
     htmlString += "<td>" + data[i][3] + "</td></tr>"; 
    } 
    $("#LogListBody").html(htmlString); 
    } 

    var table = $("#LogList").DataTable({ 
    "columnDefs": [ 
     { "orderData":[ 0 ], "targets": [ 1 ] }, 
     { 
     "targets": [ 0 ], 
     "visible": false, 
     "searchable": false 
     } ], 
    "paging": true, 
    "select": true 
    }); 
} 

ドキュメントはDataTableのは次のように初期化が必要なことを示唆している:

は、私が現在(作業している)を使用していますと、一度内のすべてのデータをロードするのDataTable ある

$(document).ready(function() { 
    $('#example').DataTable({ 
     "processing": true, 
     "serverSide": true, 
     "ajax": "../server_side/scripts/server_processing.php" 
    }); 
}); 

なんとか "ajax"に "google.script.run"を指定する必要があります。何か案は?私はjsonフォーマットのデータを返すために、サーバー側(Code.gs)に関数を書く必要があります。誰もがこのためのサンプルコードを持っているなら、私は非常に感謝しています。

ありがとうございました

答えて

0

docs ajaxを見るのは、いくつかの異なる方法で設定できます。 1つは、カスタム関数を提供することです。 https://datatables.net/reference/option/ajax

opの詳細情報に基づいて編集します。これは非常に基本的な設定です:

$('#example').dataTable({ 
    "processing": true, 
    "serverSide": true, 
    "ajax": function (data, callback, settings) { 
    google.script.run.withSuccessHandler(callback).getLogList(settings); 
    } 
}); 
+0

プラグインはすでにDOMにロードされているものを解析します。データが必要なときに引き出される非同期スキームに移行したい。 – h0dges

+0

それを入手してください。投稿したコードをスクラップしたい。 ajax呼び出しのカスタム関数の使用について投稿したドキュメントを見てください。 –

+0

@SpencerEaston私はOPとまったく同じ問題を抱えています。私はあなたのコードを試しましたが、それは '不動産価値のために失敗:ajax'を返します。あなたはなぜそうするのか考えているからですか?またwithSuccessHandlerメソッドで 'callback'を使用していますか? – mkab

関連する問題