2012-03-13 2 views
0

Я делаю вызов AJAX и обновляю числовые значения в столбце моей таблицы (я не добавляю новые строки или не удаляю существующие строки, просто обновляю значения внутри столбца, который я хочу сортировать).jQuery Tablesorter - в IE он меняет порядок сортировки при каждом запуске операции сортировки

После успешного вызова AJAX я просто запускаю: $("#myTable").tablesorter({sortList: [[4,0]]}); для сортировки по столбцу 4 в заказе ASC.

Однако в IE каждый раз, когда приведенный выше код работает, он меняет текущий порядок. Так стол переворачивается из заказанного ASC в DESc к ASC DESC к ...

Я попытался вместо вызова $("#myTable").trigger("update");, но это все-таки меняет порядок сортировки в IE.

Любая идея, как отсортировать это?

Спасибо!

ответ

1

В tablesorter, после вставки/изменения таблицы, вы должны .trigger("update") и .trigger("sorton", ...), чтобы переопределить текущий вид.

Однако в связи с тем, что реализовано «обновление», вы не можете просто иметь два последовательных оператора, .trigger("update"), а затем .trigger("sorton", ...). Это противоречит интуиции и обычно рассматривается как ошибка.

Все это прекрасно объяснено here. Применить предложенный патч для вашей копии TableSorter, и используйте следующую одну инструкцию для достижения комбинированного аффект обновления внутреннего представления TableSorter в таблицы и повторно применяя текущий вид:

$("#myTable").trigger({type:'update', resort:true}); 
+0

Большое спасибо за это. Честно говоря, я не уверен, что это отсортировано или нет. Проблема с моей таблицей заключалась в том, что у меня были несколько ячеек с пустыми данными, все остальные были числовыми. После того, как я явно установил пустые столбцы равными 0, IE начал работать нормально. – Marcus

+0

Возможно, вам понадобились как патч, так и нули. –

+0

Он работает без патча;) Просто вызывая метод .tablesorter после каждого вызова AJAX, и все в порядке! Приветствия, хотя для упоминания исправить. По крайней мере, я знаю, где искать, если что-то подобное произойдет в будущем! – Marcus