Динамическая сортировка с JQuery - PullRequest
0 голосов
/ 12 октября 2010

У меня есть элемент таблицы HTML с именем «results».Эта таблица динамически заполняется результатами веб-службы.Веб-сервис запускается, когда пользователь нажимает кнопку.Эта кнопка вызывает функцию «getResults», показанную ниже.Эта функция возвращает коллекцию объектов в формате JSON.Когда веб-сервис успешно возвращается, вызывается функция 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».Но я не знаю как.Может быть, я совершенно не прав.Кто-нибудь может мне помочь?Спасибо

http://tablesorter.com/docs/

Ответы [ 2 ]

1 голос
/ 12 октября 2010

Разобрался. Из документации:

.

$ ( "таблица") триггер ( "обновление");

0 голосов
/ 12 октября 2010

Возможно, вы и правы в уничтожении сортировщика, но у меня нет опыта работы с этим сортировщиком

Я использую 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(); 
  }
...