Jquery DataTable重新初始化

时间:2016-03-06 07:01:08

标签: javascript jquery datatables

我正在从多个工作表中读取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
        });
    }   

但没有令人满意的结果。 请指导谢谢。

1 个答案:

答案 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()作为示例。

因此,如果您直接向表格主体添加行,则只要您排序,搜索等它们就会消失。