2010-10-12 18 views
0

我有一个名为“results”的HTML表格元素。该表格动态填充了Web服务的结果。当用户点击一个按钮时,Web服务被触发。该按钮调用下面显示的“getResults”函数。该函数返回JSON格式的对象集合。当Web服务成功返回时,调用一个名为getResultsCompleted的函数。结果被动态地添加到表后,我打电话就可以了tablesorter初始化,我的代码如下所示:使用JQuery进行动态分类

function getResults() { 
    $("#results > tbody").html(""); 
    $.ajax({ 
    type: "GET", 
    url: "/GetResults", 
    contentType: "application/json; charset=utf-8", 
    success: getResultsCompleted, 
    }); 
} 

function getResultsCompleted(results) { 
    var html = ""; 
    if (results.d.length > 0) {  
    $.each(results.d, function (i, r) { 
     html += getRow(r); 
    }); 
    } 
    $("#results > tbody:last").append(html); 
    $("#results").tablesorter(); 
} 

第一次结果加载,整理作品的罚款。但是,在后续的加载中,排序无法正常工作。我觉得我需要以某种方式在调用“getResults”函数时“销毁”tablesorter。但我不知道如何。也许我完全错了。有人可以帮我吗?由于

http://tablesorter.com/docs/

回答

1

想通了。从文档:

$(“table”)。trigger(“update”);

0

你可能是正确的与破坏台分拣机,但我还没有与此分拣

我用flexigrid体验并还有jgrid都是好表机械臂

但你可能会尝试删除内容并重建像这样

function getResultsCompleted(results) { 
     var html = ""; 
     if (results.d.length > 0) {  
     $.each(results.d, function (i, r) { 
     html += getRow(r); 
     }); 
    } 
    $("#results > tbody:last").children().remove(); 
    $("#results > tbody:last").append(html); 
    $("#results").tablesorter(); 
    }