使用JQuery进行动态排序

时间:2010-10-12 11:35:48

标签: jquery tablesorter

我有一个名为“results”的HTML表格元素。此表使用Web服务的结果动态填充。用户单击按钮时会触发Web服务。此按钮调用下面显示的“getResults”函数。此函数返回JSON格式的对象集合。当Web服务成功返回时,将调用名为getResultsCompleted的函数。将结果动态添加到表格后,我在其上调用tablesorter初始化程序,我的代码如下所示:

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/

2 个答案:

答案 0 :(得分:1)

想出来。来自文档:

$( “表”)触发器( “更新”)。

答案 1 :(得分: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(); 
  }