我正在尝试在服务器端处理模式下使用数据表,以便以异步方式将数据加载到批次中。这对于海量数据集非常有用非常。文档足够清晰(https://datatables.net/examples/data_sources/server_side.html),但是,我正在努力研究如何在Google Apps脚本及其HTMLService中实现它。
我目前使用的(工作正常)是数据表一次加载所有数据:
$(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
});
}
文档表明数据表需要像这样初始化:
$(document).ready(function() {
$('#example').DataTable( {
"processing": true,
"serverSide": true,
"ajax": "../server_side/scripts/server_processing.php"
} );
} );
所以不知怎的,我需要用“google.script.run”提供“ajax”。有任何想法吗?然后我需要在服务器端编写一个函数(Code.gs)来返回json格式的数据。如果有人为此提供示例代码,我将非常感激。
由于
答案 0 :(得分:0)
查看文档ajax可以通过几种不同的方式进行配置。一种是提供自定义功能。 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);
}
} );