动态排序的表排序在更新时丢失

时间:2014-03-11 00:47:27

标签: javascript jquery sorting tablesorter

我正在使用JQuery动态创建表,因为表中的行数取决于配置到我从中提取数据的服务器的代理数量。

表中的统计数据需要是"实时"所以我每秒都用新的统计数据重新创建表格。我正在使用JQuery TableSorter插件 - http://tablesorter.com/docs/ 允许我按照我的要求对表进行排序,但是每次重新创建表时,这都会使排序变得无用。谁能想到解决方案?

这是我创建表的代码。

function addToTable() { 

    var agentData = getAgentStats();
    var ids = getAgentIds();
    var names = getAgentNames();

    // Add new Row to to table
    for(var i =0;i<agentData.length;i++){ 

        $('#StatsContainer').append('<tr><td>'+ids[i]+'</td><td>'+names[i]+'</td><td>'+agentData[i].statistics[13]+'</td><td>'+agentData[i].statistics[3]+'</td>\n\
    <td>'+agentData[i].statistics[4]+'</td><td>'+agentData[i].statistics[6]+'</td><td>'+agentData[i].statistics[12]+'</td><td>'+agentData[i].statistics[14]+'</td><tr>'); 
    }

    // Let table sorter know that table contents has changed 
    $("table").trigger("update");
}

提前谢谢。

1 个答案:

答案 0 :(得分:0)

没有看到更多代码来获取上下文:

Tablesorter支持向其发送有关如何对表进行排序的控件的功能。

$("#trigger-link").click(function() { 
     // set sorting column and direction, this will sort on the first and third column the column index starts at zero 
     var sorting = [[0,0],[2,0]]; 
     // sort on the first column 
     $("table").trigger("sorton",[sorting]); 
     // return false to stop default link action 
     return false; 
 });

您可以拦截标题点击以记录排序顺序,然后调用tablesorter,如上所示。

一旦你拦截了表的排序方式,就可以在每次重建表格后应用该排序。