我正在从多个工作表中读取Google电子表格中的数据,并以表格格式显示检索到的数据。一旦检索到数据,我正在创建一个在ajax调用中具有数据的表行,即
$tbody.append('<tr><td>'+rows[i][6]+'</td>'+'<td>'+rows[i][0]+'</td><td>'+rows[i][1]+'</td><td>'+rows[i][2]+'</td><td>'+rows[i][3]+'</td><td>'+rows[i][4]+'</td><td>'+rows[i][5]+'</td><td><a id="UpdateLink" href="#">Update</a></tr>');
在第一次运行时,数据显示正常,但是当我碰巧有来自另一个工作表的数据时,我看到没有应用分页,当我单击任何标题列来执行排序它显示第一个工作表中的数据。
谷歌有人建议对数据表使用destroy属性,即 $(“#spreadsheetdata).DataTable({ 毁灭:真 }); 但行为仍然相同。 我也申请了
if ( $.fn.dataTable.isDataTable( '#spreadsheetdata' ) ) {
//dataTableInstance = $('#spreadsheetdata').DataTable();
}
else {
dataTableInstance = $('#spreadsheetdata').DataTable( {
paging:true,
ordering:true,
info:true
});
}
但没有令人满意的结果。 请指导谢谢。
答案 0 :(得分:0)
而是使用jQuery append方法添加行,您需要使用DataTables row.add()
方法。
如果exports.createServer = (io) ->
server = net.createServer(
{
allowHalfOpen: true,
pauseOnConnect: false
},
(socket)->
createClient(socket, io)
)
server.listen portHl7
server.on('error', (err) ->
if (err.code == 'EADDRINUSE')
console.log 'Address in use, retrying...'
setTimeout(
() ->
server.close()
self.createServer()
1000
)
)
server.on('close', (err) ->
console.log "server closed"
)
createClient = (socket, io) ->
client = socket
client.name = client.remoteAddress + ":" + client.remotePort
clients.push(client)
console.log "Client #{client.name} connected"
client.setEncoding 'utf8'
client.addListener 'data', (data) ->
parser = new Parser()
s = new stream.Readable()
...
是您分配给表格的变量,dataTableInstance
是Google电子表格中的数据数组,则此语法应允许您将新行追加到现有表格中:< / p>
rows
使用jQuery追加新行的原因是DataTables维护自己的客户端状态 - 请参阅search()
,order()
和page()
作为示例。
因此,如果您直接向表格主体添加行,则只要您排序,搜索等它们就会消失。