在jQuery中使用DataTables插件

时间:2013-02-10 01:56:46

标签: google-apps-script

我正在尝试使用数组作为数据源,使用HtmlService和jquery的Datatables插件。我在传递数组时遇到问题。结果表不能正确渲染数组 - 在这3个col表中,col1包含'1',col2包含','col3包含'2'我做错了什么?

function doGet() { 
var temp = HtmlService.createTemplateFromFile('example2');
temp.j = [1,2,3];            
return temp.evaluate();  
}

<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />

    <title>DataTables example</title>

    <link rel="stylesheet" type="text/css" href="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.1/css/jquery.dataTables.css">
    <script type="text/javascript" charset="utf8" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js"></script>
    <script type="text/javascript" charset="utf8" src="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.1/jquery.dataTables.min.js"></script>
    <script type="text/javascript" charset="utf8">
        $(document).ready(function() {
$('#demo').html( '<table cellpadding="0" cellspacing="0" border="0" class="display" id="example"></table>' );
$('#example').dataTable( {
    "aaData": [
        /* Reduced data set */
         <?= j ?> 

    ],
    "aoColumns": [
        { "sTitle": "Engine" },
        { "sTitle": "Browser" },
        { "sTitle": "Platform" }
    ]
} );   
} );
  </script>
</head>
<body>
<div id="demo"></div>

</body>
</html>

1 个答案:

答案 0 :(得分:2)

一些想法。让我知道你最喜欢/最好的。您可以将[1,2,3]写为字符串并将其放在模板中。像这样:

temp.j = Utilities.jsonStringify([1,2,3]);

<?!= j ?>

注意:此处需要!,因为它会强制按原样打印字符串。请参阅“Force-Printing Scriptlets”。

或者您可以像这样在html模板中遍历数据的每个元素。

[<? for  (var i = 0; i < j.length; ++i) { ?>
  <?!= j[i]?>,
<? } ?>]

注意:方括号和逗号是必需的,因为j[i]只返回每个元素的值。